class PaperPlane::FlightRoutes::Email

Private Instance Methods

_insert_mailer_method() click to toggle source
# File lib/paper_plane/flight_routes/email.rb, line 42
def _insert_mailer_method
  @_engine.define_method(@method) do |context|
    context.each do |var, _v|
      next unless var.to_s.starts_with? '@'

      instance_variable_set(var, context.dig(var))
    end
    mail(context[:headers])
  end
end
_preprend_view_lookup() click to toggle source
# File lib/paper_plane/flight_routes/email.rb, line 53
def _preprend_view_lookup
  @_engine.prepend_view_path _default_views_folder
end
_set_layout() click to toggle source
# File lib/paper_plane/flight_routes/email.rb, line 57
def _set_layout
  @_engine.layout 'email'
end
do_fly() click to toggle source
# File lib/paper_plane/flight_routes/email.rb, line 10
def do_fly
  _preprend_view_lookup
  _insert_mailer_method
  _set_layout

  @_template_formats = %i[html text]

  mail = @_engine.send(@method, context.merge(headers: headers))

  if Rails.env.development?
    LetterOpener::DeliveryMethod.new.deliver!(mail)
  else
    mail.deliver!
  end
end
headers() click to toggle source
# File lib/paper_plane/flight_routes/email.rb, line 26
def headers
  {
    template_path: _template_folder,
    template_name: _template_name,
    subject: subject,
    to: recipient.email,
    from: 'Christophe Vercarre <christophe@colochousing.com>',
    charset: 'utf-8',
    bcc: ENV['EMAIL_INTERCEPTOR_RECIPIENTS'].split(',')
  }
end
subject() click to toggle source
# File lib/paper_plane/flight_routes/email.rb, line 38
def subject
  @context.dig(:@subject)
end