Sha256: 7d0cee47621c52bad289623c7c709d7d54300ed4571fe79d66bd2e75cd6afbc6
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
# sugessted usage # Mailer.deliver(:confirm_email, 'rejotl@gmailcom') # Mailer.render(:confirm_email, 'rejotl@gmailcom') # natively works like # Mailer.prepare(:confirm_email, 'rejotl@gmailcom').deliver # Mailer.prepare(:confirm_email, 'rejotl@gmailcom').body # Rails mode via method missing is suported # Mailer.confirm_email('rejotl@gmailcom').deliver # Mailer.confirm_email('rejotl@gmailcom').body class Lux::Mailer BeforeAndAfter.define self, :before, :after attr_reader :subject, :to, :from # Mailer.prepare(:confirm_email, 'rejotl@gmailcom') def self.prepare(template, *args) obj = new obj.instance_variable_set :@_template, template BeforeAndAfter.execute(obj, :before) obj.send(template, *args) BeforeAndAfter.execute(obj, :after) obj end def self.render(method_name, *args) send(method_name, *args).body end def deliver raise "From in mailer not defined" unless @from raise "To in mailer not defined" unless @to raise "Subject in mailer not defined" unless @subject require 'mail' Mail.defaults { delivery_method Lux.config(:mail).delivery, Lux.config(:mail).opts } m = Mail.new m[:from] = @from m[:to] = @to m[:subject] = @subject m[:body] = body m[:content_type] = 'text/html; charset=UTF-8' m.deliver! end def deliver_later Lux.delay(self, :deliver) end def self.deliver send(method_name, *args).deliver end def body Lux::Template.render_with_layout("mailer/#{@_template}", instance_variables_hash) end def subject @subject end def self.method_missing(method_sym, *args) prepare(method_sym, *args) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lux-fw-0.1.35 | ./lib/lux/mailer/mailer.rb |
lux-fw-0.1.17 | ./lib/lux/mailer/mailer.rb |