Sha256: 8637a2918cbaef64a92f221f67690d9803329f464fa644edb0439ffa56f68796

Contents?: true

Size: 550 Bytes

Versions: 4

Compression:

Stored size: 550 Bytes

Contents

require 'json'

module SendGrid
  class Email
    attr_accessor :email, :name

    def initialize(email: nil, name: nil)
      if name
        @email = email
        @name = name
      else
        @email, @name = split_email(email)
      end
    end

    def split_email(email)
      split = /(?:(?<address>.+)\s)?<?(?<email>.+@[^>]+)>?/.match(email)
      [split[:email], split[:address]]
    end

    def to_json(*)
      {
        'email' => email,
        'name' => name
      }.delete_if { |_, value| value.to_s.strip == '' }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sendgrid-ruby-6.3.8 lib/sendgrid/helpers/mail/email.rb
sendgrid-ruby-6.3.7 lib/sendgrid/helpers/mail/email.rb
sendgrid-ruby-6.3.6 lib/sendgrid/helpers/mail/email.rb
sendgrid-ruby-6.3.5 lib/sendgrid/helpers/mail/email.rb