mirror of
https://github.com/github/rails.git
synced 2026-04-04 03:00:58 -04:00
Fix for ActionMailer::Base.method_missing so that it raises NoMethodError when no method is found [#1330 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
This commit is contained in:
committed by
Joshua Peek
parent
78a18392e1
commit
a62e9e90d8
@@ -386,12 +386,14 @@ module ActionMailer #:nodoc:
|
||||
end
|
||||
|
||||
def method_missing(method_symbol, *parameters) #:nodoc:
|
||||
match = matches_dynamic_method?(method_symbol)
|
||||
case match[1]
|
||||
when 'create' then new(match[2], *parameters).mail
|
||||
when 'deliver' then new(match[2], *parameters).deliver!
|
||||
when 'new' then nil
|
||||
else super
|
||||
if match = matches_dynamic_method?(method_symbol)
|
||||
case match[1]
|
||||
when 'create' then new(match[2], *parameters).mail
|
||||
when 'deliver' then new(match[2], *parameters).deliver!
|
||||
when 'new' then nil
|
||||
end
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1045,4 +1045,12 @@ class RespondToTest < Test::Unit::TestCase
|
||||
def test_should_not_respond_to_deliver_with_template_suffix_if_it_begins_with_a_digit
|
||||
assert !RespondToMailer.respond_to?(:deliver_1_template)
|
||||
end
|
||||
|
||||
def test_should_still_raise_exception_with_expected_message_when_calling_an_undefined_method
|
||||
error = assert_raises NoMethodError do
|
||||
RespondToMailer.not_a_method
|
||||
end
|
||||
|
||||
assert_match /undefined method.*not_a_method/, error.message
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user