module Aerogel::Mailer
Constants
- VERSION
Public Class Methods
registered(app)
click to toggle source
Configures module Aerogel::Mailer
# File lib/aerogel/mailer/core.rb, line 7 def self.registered(app) aerogel_delivery_method = Aerogel.config.mailer.delivery_method aerogel_delivery_options = Aerogel.config.mailer.delivery_options.raw || {} Mail.defaults do delivery_method aerogel_delivery_method, aerogel_delivery_options end # load mailers Aerogel::get_resource_list( :app, "mailers/**/*.rb" ).each do |filename| Aerogel.require_into( Aerogel::Application, filename ) end # register reloader setup_reloader(app) if Aerogel.config.aerogel.reloader? end
Private Class Methods
setup_reloader( app )
click to toggle source
Sets up reloader
# File lib/aerogel/mailer/core.rb, line 71 def self.setup_reloader( app ) app.use Aerogel::Reloader, ->{ Aerogel.get_resource_list( :app, "mailers/**/*.rb" ) } do |files| # reset mailers Definition.mailers.clear # load mailers files.each do |filename| Aerogel.require_into( Aerogel::Application, filename ) end end end
Public Instance Methods
email( name, *args )
click to toggle source
Deliver email using mailer specified by name
# File lib/aerogel/mailer/core.rb, line 32 def email( name, *args ) email_with_context( self, name, *args ) end
email_with_context( context, name, *args )
click to toggle source
Deliver email using mailer specified by name
# File lib/aerogel/mailer/core.rb, line 38 def email_with_context( context, name, *args ) mailer = Aerogel::Mailer::Definition.mailers[name.to_sym] unless mailer raise ArgumentError.new "Mailer '#{name}' is not defined" end params = mailer.compile( context, *args ) puts "** sending mail: #{params}" begin message = Mail.new do from params[:from] to params[:to] subject params[:subject] text_part do content_type 'text/plain; charset=UTF-8' body params[:body][:text] end if params[:body][:text] html_part do content_type 'text/html; charset=UTF-8' body params[:body][:html] end if params[:body][:html] end message.charset = "UTF-8" message.deliver rescue StandardError => e raise Aerogel::Mailer::Error.new "Mailer '#{name}' failed to deliver email: #{e}" end true end
mailer( name, &block )
click to toggle source
Registers new mailer
# File lib/aerogel/mailer/core.rb, line 26 def mailer( name, &block ) Definition.new name, block end