From c17d200e3f1b86219c0e12809e93e8943dfa325a Mon Sep 17 00:00:00 2001 From: Sergey Nartimov Date: Sun, 13 May 2012 14:21:00 +0300 Subject: mailer can be anonymous closes #5970 --- actionmailer/lib/action_mailer/base.rb | 3 ++- actionmailer/test/base_test.rb | 13 +++++++++++++ actionmailer/test/fixtures/anonymous/welcome.erb | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 actionmailer/test/fixtures/anonymous/welcome.erb (limited to 'actionmailer') diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb index e24a7f52d5..4f0cff0612 100644 --- a/actionmailer/lib/action_mailer/base.rb +++ b/actionmailer/lib/action_mailer/base.rb @@ -3,6 +3,7 @@ require 'action_mailer/collector' require 'active_support/core_ext/object/blank' require 'active_support/core_ext/string/inflections' require 'active_support/core_ext/hash/except' +require 'active_support/core_ext/module/anonymous' require 'action_mailer/log_subscriber' module ActionMailer #:nodoc: @@ -401,7 +402,7 @@ module ActionMailer #:nodoc: end def mailer_name - @mailer_name ||= name.underscore + @mailer_name ||= anonymous? ? "anonymous" : name.underscore end attr_writer :mailer_name alias :controller_path :mailer_name diff --git a/actionmailer/test/base_test.rb b/actionmailer/test/base_test.rb index aed3ee1874..1d747ed18a 100644 --- a/actionmailer/test/base_test.rb +++ b/actionmailer/test/base_test.rb @@ -610,6 +610,19 @@ class BaseTest < ActiveSupport::TestCase assert_equal Set.new(["notify"]), FooMailer.action_methods end + test "mailer can be anonymous" do + mailer = Class.new(ActionMailer::Base) do + def welcome + mail + end + end + + assert_equal "anonymous", mailer.mailer_name + + assert_equal "Welcome", mailer.welcome.subject + assert_equal "Anonymous mailer body", mailer.welcome.body.encoded.strip + end + protected # Execute the block setting the given values and restoring old values after diff --git a/actionmailer/test/fixtures/anonymous/welcome.erb b/actionmailer/test/fixtures/anonymous/welcome.erb new file mode 100644 index 0000000000..8361da62c4 --- /dev/null +++ b/actionmailer/test/fixtures/anonymous/welcome.erb @@ -0,0 +1 @@ +Anonymous mailer body -- cgit v1.2.3