Permalink
Browse files

Use I18n on ActionMailer subjects by default.

  • Loading branch information...
1 parent 81c416b commit 2aafdc839600240a55cea06c960d0a2a7f63016d @josevalim josevalim committed with wycats Oct 28, 2009
Showing with 22 additions and 3 deletions.
  1. +7 −3 actionmailer/lib/action_mailer/base.rb
  2. +15 −0 actionmailer/test/mail_service_test.rb
@@ -463,9 +463,9 @@ def create!(method_name, *parameters) #:nodoc:
# Create e-mail parts
create_parts
- # If this is a multipart e-mail add the mime_version if it is not
- # already set.
- @mime_version ||= "1.0" if !@parts.empty?
+ # Set the subject if not set yet
+ @subject ||= I18n.t(method_name, :scope => [:actionmailer, :subjects, mailer_name],
+ :default => method_name.humanize)
# build the mail object itself
@mail = create_mail
@@ -539,6 +539,10 @@ def create_parts
@content_type = "multipart/alternative" if @content_type !~ /^multipart/
@parts = sort_parts(@parts, @implicit_parts_order)
end
+
+ # If this is a multipart e-mail add the mime_version if it is not
+ # already set.
+ @mime_version ||= "1.0" if !@parts.empty?
end
end
@@ -296,6 +296,12 @@ def body_ivar(recipient)
body :body => "foo", :bar => "baz"
end
+ def subject_with_i18n(recipient)
+ recipients recipient
+ from "system@loudthinking.com"
+ render :text => "testing"
+ end
+
class << self
attr_accessor :received_body
end
@@ -392,6 +398,15 @@ def test_signed_up
assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded
end
+ def test_subject_with_i18n
+ assert_nothing_raised { TestMailer.deliver_subject_with_i18n(@recipient) }
+ assert_equal "Subject with i18n", ActionMailer::Base.deliveries.first.subject
+
+ I18n.backend.store_translations('en', :actionmailer => {:subjects => {:test_mailer => {:subject_with_i18n => "New Subject!"}}})
+ assert_nothing_raised { TestMailer.deliver_subject_with_i18n(@recipient) }
+ assert_equal "New Subject!", ActionMailer::Base.deliveries.last.subject
+ end
+
def test_custom_template
expected = new_mail
expected.to = @recipient

0 comments on commit 2aafdc8

Please sign in to comment.