Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

The return value from mailer methods is not relevant.

  • Loading branch information...
commit ec3429a3d6da2250f360d629fa6300e46f3d53fb 1 parent a9dc446
@senny senny authored
View
2  actionmailer/CHANGELOG.md
@@ -2,7 +2,7 @@
* Explicit multipart messages no longer set the order of the MIME parts.
*Nate Berkopec*
-
+
* Do not render views when mail() isn't called.
Fix #7761
View
5 actionmailer/lib/action_mailer/base.rb
@@ -501,6 +501,7 @@ def method_missing(method_name, *args)
# method, for instance).
def initialize(method_name=nil, *args)
super()
+ @_mail_was_called = false
@_message = Mail.new
process(method_name, *args) if method_name
end
@@ -508,7 +509,8 @@ def initialize(method_name=nil, *args)
def process(*args) #:nodoc:
lookup_context.skip_default_locale!
- @_message = NullMail.new unless super
+ super
+ @_message = NullMail.new unless @_mail_was_called
end
class NullMail #:nodoc:
@@ -668,6 +670,7 @@ def attachments
# end
#
def mail(headers={}, &block)
+ @_mail_was_called = true
m = @_message
# At the beginning, do not consider class default for parts order neither content_type
View
6 actionmailer/test/base_test.rb
@@ -505,6 +505,12 @@ def teardown
mail.deliver
end
+ test 'the return value of mailer methods is not relevant' do
+ mail = BaseMailer.with_nil_as_return_value
+ assert_equal('Welcome', mail.body.to_s.strip)
+ mail.deliver
+ end
+
# Before and After hooks
class MyObserver
View
5 actionmailer/test/mailers/base_mailer.rb
@@ -118,4 +118,9 @@ def email_with_translations
def without_mail_call
end
+
+ def with_nil_as_return_value(hash = {})
+ mail(:template_name => "welcome")
+ nil
+ end
end
Please sign in to comment.
Something went wrong with that request. Please try again.