class Amply::Helpers::EmailAddress
Public Class Methods
create(data)
click to toggle source
# File lib/amply/helpers/email_address.rb, line 5 def create(data) if data.is_a?(Array) return data.reject { |el| el.nil? || el == '' } .map { |el| self.class.create(el) } end if data.is_a?(EmailAddress) return data end self.class.create(data) end
new(data)
click to toggle source
# File lib/amply/helpers/email_address.rb, line 19 def initialize(data) if data.is_a?(String) data = from_string(data) end unless data.is_a?(Hash) raise 'Expecting hash or string for email address data' end name = data[:name] || data['name'] email = data[:email] || data['email'] set_name(name) set_email(email) end
Public Instance Methods
to_json()
click to toggle source
# File lib/amply/helpers/email_address.rb, line 35 def to_json json = { email: @email } unless @name.nil? json[:name] = @name end json end
Private Instance Methods
from_string(data)
click to toggle source
# File lib/amply/helpers/email_address.rb, line 69 def from_string(data) if data.index('<').nil? return { name: nil, email: data } end name, email = data.split('<') name.strip! email.gsub!('>', '') email.strip! { name: name, email: email } end
set_email(email)
click to toggle source
# File lib/amply/helpers/email_address.rb, line 57 def set_email(email) if email.nil? raise 'Must provide `email`' end unless email.is_a?(String) raise 'String expected for `email`' end @email = email end
set_name(name)
click to toggle source
# File lib/amply/helpers/email_address.rb, line 47 def set_name(name) return if name.nil? unless name.is_a?(String) raise 'String expected for `name`' end @name = name end