mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Adding ability for the procs to be called within the instance, allows you to pass results from instance methods to the mail header
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
parent
08b07b60b6
commit
ceaa100e59
2 changed files with 15 additions and 2 deletions
|
@ -530,7 +530,7 @@ module ActionMailer #:nodoc:
|
||||||
|
|
||||||
# Call all the procs (if any)
|
# Call all the procs (if any)
|
||||||
default_values = self.class.default.merge(self.class.default) do |k,v|
|
default_values = self.class.default.merge(self.class.default) do |k,v|
|
||||||
v.respond_to?(:call) ? v.call : v
|
v.respond_to?(:call) ? v.bind(self).call : v
|
||||||
end
|
end
|
||||||
|
|
||||||
# Handle defaults
|
# Handle defaults
|
||||||
|
|
|
@ -116,11 +116,19 @@ class BaseTest < ActiveSupport::TestCase
|
||||||
|
|
||||||
class ProcMailer < ActionMailer::Base
|
class ProcMailer < ActionMailer::Base
|
||||||
default :to => 'system@test.lindsaar.net',
|
default :to => 'system@test.lindsaar.net',
|
||||||
'X-Proc-Method' => Proc.new { Time.now.to_i.to_s }
|
'X-Proc-Method' => Proc.new { Time.now.to_i.to_s },
|
||||||
|
:subject => Proc.new { give_a_greeting }
|
||||||
|
|
||||||
def welcome
|
def welcome
|
||||||
mail
|
mail
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def give_a_greeting
|
||||||
|
"Thanks for signing up this afternoon"
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
test "method call to mail does not raise error" do
|
test "method call to mail does not raise error" do
|
||||||
|
@ -577,6 +585,11 @@ class BaseTest < ActiveSupport::TestCase
|
||||||
mail2 = ProcMailer.welcome
|
mail2 = ProcMailer.welcome
|
||||||
assert(mail1['X-Proc-Method'].to_s.to_i > mail2['X-Proc-Method'].to_s.to_i)
|
assert(mail1['X-Proc-Method'].to_s.to_i > mail2['X-Proc-Method'].to_s.to_i)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "we can call other defined methods on the class as needed" do
|
||||||
|
mail = ProcMailer.welcome
|
||||||
|
assert_equal("Thanks for signing up this afternoon", mail.subject)
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue