class SendGrid::Email

Attributes

email[RW]
name[RW]

Public Class Methods

new(email:, name: nil) click to toggle source

@param [String] email required e-mail address @param [String] name optionally personification

# File lib/sendgrid/helpers/mail/email.rb, line 9
def initialize(email:, name: nil)
  if name
    @email = email
    @name = name
  else
    @email, @name = split_email(email)
  end
end

Public Instance Methods

split_email(email) click to toggle source
# File lib/sendgrid/helpers/mail/email.rb, line 18
def split_email(email)
  split = /(?:(?<address>.+)\s)?<?(?<email>.+@[^>]+)>?/.match(email)
  raise ArgumentError, "email (#{email}) is invalid" unless split

  [split[:email], split[:address]]
end
to_json(*) click to toggle source
# File lib/sendgrid/helpers/mail/email.rb, line 25
def to_json(*)
  {
    'email' => email,
    'name' => name
  }.delete_if { |_, value| value.to_s.strip == '' }
end