class Drill::Mail::LetterOpener

Attributes

delivery_method[R]
mail[R]

Public Class Methods

new( params, mail = ::Mail.new, delivery_method = ::LetterOpener::DeliveryMethod.new ) click to toggle source
Calls superclass method Drill::Base::new
# File lib/drill/mail/letter_opener.rb, line 12
def initialize(
  params,
  mail = ::Mail.new,
  delivery_method = ::LetterOpener::DeliveryMethod.new
)
  super(params)

  @mail = mail
  @delivery_method = delivery_method
end

Public Instance Methods

deliver() click to toggle source
# File lib/drill/mail/letter_opener.rb, line 23
def deliver
  return if params.skip_delivery

  prepare_mail!

  delivery_method.deliver!(mail)
end
deliver_later(wait: nil) click to toggle source
# File lib/drill/mail/letter_opener.rb, line 31
def deliver_later(wait: nil)
  deliver
end

Private Instance Methods

prepare_mail!() click to toggle source
# File lib/drill/mail/letter_opener.rb, line 37
def prepare_mail!
  mail.to = Array(params.to) + Array(params.cc)
  mail.from = params.from_email
  mail.sender = params.from_name
  mail.reply_to = params.reply_to
  mail.content_type = 'text/html'
  mail.body = render_html
end
render_html() click to toggle source
# File lib/drill/mail/letter_opener.rb, line 46
def render_html
  template_name = params.template_name
  merge_vars =
    params.vars.each.with_object([]) do |(name, content), arr|
      arr << { name: name.to_s.upcase, content: content }
    end

  Drill.client.templates.render(template_name, [], merge_vars)['html']
end