Sha256: daacdb695a090fdf271e5f8191621dd6538b2a2c5603c3a954ad00d5649e5549

Contents?: true

Size: 839 Bytes

Versions: 2

Compression:

Stored size: 839 Bytes

Contents

begin
  require 'mail/check_delivery_params'
rescue LoadError => e
end

module LetterOpener
  class DeliveryMethod
    include Mail::CheckDeliveryParams if defined?(Mail::CheckDeliveryParams)

    class InvalidOption < StandardError; end

    attr_accessor :settings

    def initialize(options = {})
      raise InvalidOption, "A location option is required when using the Letter Opener delivery method" if options[:location].nil?
      self.settings = options
    end

    def deliver!(mail)
      check_delivery_params(mail) if respond_to?(:check_delivery_params)

      location = File.join(settings[:location], "#{Time.now.to_i}_#{Digest::SHA1.hexdigest(mail.encoded)[0..6]}")
      messages = Message.rendered_messages(location, mail)
      Launchy.open("file:///#{URI.parse(URI.escape(messages.first.filepath))}")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
letter_opener-1.4.1 lib/letter_opener/delivery_method.rb
letter_opener-1.4.0 lib/letter_opener/delivery_method.rb