class EmailAttribute::List

serializeable model that wraps Mail::AddressList

Attributes

addresses[R]

Public Class Methods

dump(email_address) click to toggle source
# File lib/email_attribute/list.rb, line 37
def dump(email_address)
  return nil if email_address.blank?

  email_address.to_s
end
load(email_address) click to toggle source
# File lib/email_attribute/list.rb, line 43
def load(email_address)
  new(email_address)
end
new(email_addresses) click to toggle source
# File lib/email_attribute/list.rb, line 7
def initialize(email_addresses)
  email_addresses = email_addresses.join(", ") if email_addresses.respond_to?(:join)
  @addresses = begin
    Mail::AddressList.new(email_addresses).addresses.map(&:format)
  rescue
    manual_parse(email_addresses)
  end
end

Public Instance Methods

blank?() click to toggle source
# File lib/email_attribute/list.rb, line 28
def blank?
  !present?
end
inspect() click to toggle source
# File lib/email_attribute/list.rb, line 16
def inspect
  to_s
end
present?() click to toggle source
# File lib/email_attribute/list.rb, line 24
def present?
  length > 0
end
strip() click to toggle source
# File lib/email_attribute/list.rb, line 32
def strip
  to_s.strip
end
to_s() click to toggle source
# File lib/email_attribute/list.rb, line 20
def to_s
  addresses.join(", ")
end

Protected Instance Methods

manual_parse(email_addresses) click to toggle source
# File lib/email_attribute/list.rb, line 50
def manual_parse(email_addresses)
  email_addresses.split(/[,;]/).map do |address|
    Mail::Address.new(address).format rescue address
  end
end