lib/goatmail/delivery_method.rb in goatmail-1.1.1 vs lib/goatmail/delivery_method.rb in goatmail-1.2.0
- old
+ new
@@ -2,21 +2,24 @@
module Goatmail
class DeliveryMethod < LetterOpener::DeliveryMethod
def initialize(options = {})
+ options[:location] ||= Goatmail.location
+ super
raise InvalidOption, "A location option is required when using the Goatmail delivery method" if Goatmail.location.nil?
- self.settings = options
end
def deliver!(mail)
- location = File.join(Goatmail.location, "#{Time.now.to_i}_#{Digest::SHA1.hexdigest(mail.encoded)[0..6]}")
- messages = LetterOpener::Message.rendered_messages(location, mail)
+ validate_mail!(mail)
+ location = File.join(settings[:location], "#{Time.now.to_f.to_s.tr('.', '_')}_#{Digest::SHA1.hexdigest(mail.encoded)[0..6]}")
+ messages = LetterOpener::Message.rendered_messages(mail, location: location, message_template: settings[:message_template])
meta_data = {
subject: mail.subject.to_s,
to: mail.to.join(", "),
from: mail.from.join(', ')
}
+
File.open(File.join(location, 'meta'), 'wb') {|f| Marshal.dump(meta_data, f)}
messages
end
end
end