class SGMailer::MailBuilder

Public Class Methods

build(*args) click to toggle source
# File lib/sg_mailer/mail_builder.rb, line 3
def self.build(*args)
  new(*args).build
end
new(from:, to:, template_id:, substitutions: {}) click to toggle source
# File lib/sg_mailer/mail_builder.rb, line 7
def initialize(from:, to:, template_id:, substitutions: {})
  @from = normalize_email(from)
  @to = Array(to).map { |email| normalize_email(email) }
  @substitutions = normalize_substitutions(substitutions)
  @template_id = template_id
end

Public Instance Methods

build() click to toggle source
# File lib/sg_mailer/mail_builder.rb, line 14
def build
  { from: normalize_email(@from),
    personalizations: [to: @to, substitutions: @substitutions],
    content: content_for_template,
    template_id: @template_id }
end

Private Instance Methods

content_for_template() click to toggle source
# File lib/sg_mailer/mail_builder.rb, line 37
def content_for_template
  [type: "text/html", value: "<html><body></body></html>"]
end
normalize_email(email) click to toggle source
# File lib/sg_mailer/mail_builder.rb, line 23
def normalize_email(email)
  if email.is_a?(String)
    { email: email }
  else
    email
  end
end
normalize_substitutions(substitutions) click to toggle source
# File lib/sg_mailer/mail_builder.rb, line 31
def normalize_substitutions(substitutions)
  Hash[substitutions.map do |key, value|
    [key.to_s, value.to_s]
  end]
end