From 58f9c4f096c92518a81093aa9912314b14873a66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?= Date: Mon, 30 Jan 2017 13:02:30 -0500 Subject: Override the initializers instead of using tap We own the class so we can override the initialize. --- actionmailer/lib/action_mailer/parameterized.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'actionmailer/lib') diff --git a/actionmailer/lib/action_mailer/parameterized.rb b/actionmailer/lib/action_mailer/parameterized.rb index 4cb355a4ed..20a0968607 100644 --- a/actionmailer/lib/action_mailer/parameterized.rb +++ b/actionmailer/lib/action_mailer/parameterized.rb @@ -105,7 +105,7 @@ module ActionMailer def method_missing(method_name, *args) if @mailer.action_methods.include?(method_name.to_s) - ActionMailer::Parameterized::MessageDelivery.new(@mailer, method_name, *args).tap { |pmd| pmd.params = @params } + ActionMailer::Parameterized::MessageDelivery.new(@mailer, method_name, @params, *args) else super end @@ -113,12 +113,15 @@ module ActionMailer end class MessageDelivery < ActionMailer::MessageDelivery # :nodoc: - attr_accessor :params + def initialize(mailer_class, action, params, *args) + super(mailer_class, action, *args) + @params = params + end private def processed_mailer @processed_mailer ||= @mailer_class.new.tap do |mailer| - mailer.params = params + mailer.params = @params mailer.process @action, *@args end end -- cgit v1.2.3