Module: Aerogel::Mailer
- Included in:
- Aerogel
- Defined in:
- lib/aerogel/mailer/core.rb,
lib/aerogel/mailer/version.rb,
lib/aerogel/mailer/definition.rb
Defined Under Namespace
Classes: Definition
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
Instance Method Summary collapse
- #email(name, *args) ⇒ Object
-
#mailer(name, &block) ⇒ Object
Registers new mailer.
Class Method Details
.configure ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/aerogel/mailer/core.rb', line 5 def self.configure aerogel_delivery_method = Aerogel.config.mailer.delivery_method = Aerogel.config.mailer..raw || {} Mail.defaults do delivery_method aerogel_delivery_method, end end |
.mailers ⇒ Object
18 19 20 |
# File 'lib/aerogel/mailer/core.rb', line 18 def self.mailers @mailers || {} end |
.register_mailer(mailer) ⇒ Object
13 14 15 16 |
# File 'lib/aerogel/mailer/core.rb', line 13 def self.register_mailer( mailer ) @mailers ||= {} @mailers[mailer.name] = mailer end |
Instance Method Details
#email(name, *args) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/aerogel/mailer/core.rb', line 28 def email( name, *args ) unless Aerogel::Mailer.mailers[name] raise ArgumentError.new "Mailer '#{name}' is not defined" end params = Aerogel::Mailer.mailers[name].eval( *args ) puts "** sending mail: #{params}" begin Mail.deliver do from params[:from] to params[:to] subject params[:subject] body params[:body] end rescue => e raise "Mailer '#{name}' failed to deliver email: #{e}" end # params, end |
#mailer(name, &block) ⇒ Object
Registers new mailer
24 25 26 |
# File 'lib/aerogel/mailer/core.rb', line 24 def mailer( name, &block ) Definition.new name, block end |