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