class SendGridActionMailerAdapter::Converter

Constants

CONVERTERS

Public Class Methods

to_sendgrid_mail(mail) click to toggle source

Convert Mail::Message to SendGrid::Mail.

@param [Message::Mail] mail @return [SendGrid::Mail] @raise [SendGridActionMailerAdapter::ValidationError]

# File lib/sendgrid_actionmailer_adapter/converter.rb, line 33
def to_sendgrid_mail(mail)
  validate!(mail)
  convert(mail)
end

Private Class Methods

convert(mail) click to toggle source
# File lib/sendgrid_actionmailer_adapter/converter.rb, line 48
def convert(mail)
  sendgrid_mail = ::SendGrid::Mail.new
  CONVERTERS.each do |converter|
    result = converter.convert(mail)
    converter.assign_attributes(sendgrid_mail, result)
  end
  sendgrid_mail
end
validate!(mail) click to toggle source
# File lib/sendgrid_actionmailer_adapter/converter.rb, line 40
def validate!(mail)
  error_messages = CONVERTERS.flat_map { |converter| converter.validate(mail) }.compact
  unless error_messages.empty?
    raise ::SendGridActionMailerAdapter::ValidationError,
          "Validation error, #{error_messages}"
  end
end