Permalink
Browse files

Allow mailer actions named send by using __send__ internally. Closes #…

…6467.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5505 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent f075399 commit c3ff04b05db1da913640481b79f75e51e804ed11 @jeremy jeremy committed Nov 13, 2006
Showing with 26 additions and 2 deletions.
  1. +2 −0 actionmailer/CHANGELOG
  2. +2 −2 actionmailer/lib/action_mailer/base.rb
  3. +22 −0 actionmailer/test/mail_service_test.rb
View
@@ -1,5 +1,7 @@
*SVN*
+* Allow mailer actions named send by using __send__ internally. #6467 [iGEL]
+
* Add assert_emails and assert_no_emails to test the number of emails delivered. #6479 [Jonathan Viney]
# Assert total number of emails delivered:
assert_emails 0
@@ -369,7 +369,7 @@ def initialize(method_name=nil, *parameters) #:nodoc:
# rendered and a new TMail::Mail object created.
def create!(method_name, *parameters) #:nodoc:
initialize_defaults(method_name)
- send(method_name, *parameters)
+ __send__(method_name, *parameters)
# If an explicit, textual body has not been set, we check assumptions.
unless String === @body
@@ -428,7 +428,7 @@ def deliver!(mail = @mail)
logger.info "Sent mail:\n #{mail.encoded}" unless logger.nil?
begin
- send("perform_delivery_#{delivery_method}", mail) if perform_deliveries
+ __send__("perform_delivery_#{delivery_method}", mail) if perform_deliveries
rescue Exception => e # Net::SMTP errors or sendmail pipe errors
raise e if raise_delivery_errors
end
@@ -801,3 +801,25 @@ def test_attr
assert_equal expected, FunkyPathMailer.template_root
end
end
+
+class MethodNamingTest < Test::Unit::TestCase
+ class TestMailer < ActionMailer::Base
+ def send
+ body 'foo'
+ end
+ end
+
+ def setup
+ ActionMailer::Base.delivery_method = :test
+ ActionMailer::Base.perform_deliveries = true
+ ActionMailer::Base.deliveries = []
+ end
+
+ def test_send_method
+ assert_nothing_raised do
+ assert_emails 1 do
+ TestMailer.deliver_send
+ end
+ end
+ end
+end

0 comments on commit c3ff04b

Please sign in to comment.