Sha256: ac9c5ace758363c57e81738b893f32ea06b35331d63372754c39b5602c0f47be

Contents?: true

Size: 742 Bytes

Versions: 4

Compression:

Stored size: 742 Bytes

Contents

module Mailkick
  class Processor
    attr_reader :message

    def initialize(message)
      @message = message
    end

    def process
      email = message.to.first
      user = Mailkick.user_method.call(email) if Mailkick.user_method
      list = message[:mailkick_list].try(:value)
      if list
        # remove header
        message[:mailkick_list] = nil
      end

      verifier = ActiveSupport::MessageVerifier.new(Mailkick.secret_token)
      token = verifier.generate([email, user.try(:id), user.try(:class).try(:name), list])

      parts = message.parts.any? ? message.parts : [message]
      parts.each do |part|
        part.body.raw_source.gsub!(/%7B%7BMAILKICK_TOKEN%7D%7D/, CGI.escape(token))
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mailkick-0.1.5 lib/mailkick/processor.rb
mailkick-0.1.4 lib/mailkick/processor.rb
mailkick-0.1.3 lib/mailkick/processor.rb
mailkick-0.1.2 lib/mailkick/processor.rb