Class: Lettr::MailExtensions::Lettr
- Inherits:
-
Object
- Object
- Lettr::MailExtensions::Lettr
- Defined in:
- lib/lettr/mail_extensions.rb
Instance Method Summary collapse
- #deliver!(mail) ⇒ Object
-
#initialize(values = {}) ⇒ Lettr
constructor
A new instance of Lettr.
Constructor Details
#initialize(values = {}) ⇒ Lettr
Returns a new instance of Lettr.
5 6 7 |
# File 'lib/lettr/mail_extensions.rb', line 5 def initialize(values={}) @settings = values end |
Instance Method Details
#deliver!(mail) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/lettr/mail_extensions.rb', line 9 def deliver!(mail) lettr_request_hashes = [] raise 'no recipient' unless mail.to raise 'no subject' unless mail.subject mail.to.each do |recipient| lettr_request_hash = {} lettr_request_hash[:recipient] = recipient lettr_request_hash[:subject] = mail.subject if mail.parts.empty? case mail.content_type when /text\/html/ lettr_request_hash[:html] = mail.body when /text\/plain/ lettr_request_hash[:text] = mail.body end else mail.parts.each do |part| case part.content_type when /text\/html/ lettr_request_hash[:html] = part.body when /text\/plain/ lettr_request_hash[:text] = part.body else lettr_request_hash[:attachments] ||= [] lettr_request_hash[:attachments] << part.body end end end lettr_request_hashes << lettr_request_hash end identifier = @settings[:template] || mail.subject.downcase.gsub(/\s/, '_') lettr_request_hashes.each do |lettr_request_hash| ::Lettr.send(identifier, lettr_request_hash).deliver end end |