aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-01-29 16:16:01 +0100
committerJosé Valim <jose.valim@gmail.com>2010-01-29 17:51:05 +0100
commit3f8409193716669b9fa61ac74ae1c92cfde00785 (patch)
tree0a7ff906de7b643f661c6dbfeb0b9ed5e4e38be7 /actionmailer
parent296007744525638b142501efee57faf6ac4be20f (diff)
downloadrails-3f8409193716669b9fa61ac74ae1c92cfde00785.tar.gz
rails-3f8409193716669b9fa61ac74ae1c92cfde00785.tar.bz2
rails-3f8409193716669b9fa61ac74ae1c92cfde00785.zip
ActionMailer should depend just on AbstractController.
Diffstat (limited to 'actionmailer')
-rw-r--r--actionmailer/lib/action_mailer.rb10
-rw-r--r--actionmailer/lib/action_mailer/base.rb6
-rw-r--r--actionmailer/lib/action_mailer/railtie.rb4
-rw-r--r--actionmailer/test/base_test.rb33
-rw-r--r--actionmailer/test/old_base/url_test.rb3
5 files changed, 33 insertions, 23 deletions
diff --git a/actionmailer/lib/action_mailer.rb b/actionmailer/lib/action_mailer.rb
index 17f63aca25..0265e6e222 100644
--- a/actionmailer/lib/action_mailer.rb
+++ b/actionmailer/lib/action_mailer.rb
@@ -24,9 +24,17 @@
actionpack_path = File.expand_path('../../../actionpack/lib', __FILE__)
$:.unshift(actionpack_path) if File.directory?(actionpack_path) && !$:.include?(actionpack_path)
-require 'action_controller'
+require 'abstract_controller'
require 'action_view'
+# Common ActiveSupport usage in ActionMailer
+require 'active_support/core_ext/class'
+require 'active_support/core_ext/object/blank'
+require 'active_support/core_ext/array/uniq_by'
+require 'active_support/core_ext/module/attr_internal'
+require 'active_support/core_ext/module/delegation'
+require 'active_support/core_ext/string/inflections'
+
module ActionMailer
extend ::ActiveSupport::Autoload
diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb
index 6246530bf0..32959e3943 100644
--- a/actionmailer/lib/action_mailer/base.rb
+++ b/actionmailer/lib/action_mailer/base.rb
@@ -1,8 +1,3 @@
-require 'active_support/core_ext/class'
-require 'active_support/core_ext/object/blank'
-require 'active_support/core_ext/array/uniq_by'
-require 'active_support/core_ext/module/delegation'
-require 'active_support/core_ext/string/inflections'
require 'mail'
require 'action_mailer/tmail_compat'
require 'action_mailer/collector'
@@ -254,7 +249,6 @@ module ActionMailer #:nodoc:
include AbstractController::LocalizedCache
include AbstractController::Layouts
include AbstractController::Helpers
- include AbstractController::UrlFor
include AbstractController::Translation
helper ActionMailer::MailHelper
diff --git a/actionmailer/lib/action_mailer/railtie.rb b/actionmailer/lib/action_mailer/railtie.rb
index 7ed1519e36..4ed70503fd 100644
--- a/actionmailer/lib/action_mailer/railtie.rb
+++ b/actionmailer/lib/action_mailer/railtie.rb
@@ -17,5 +17,9 @@ module ActionMailer
ActionMailer::Base.send "#{k}=", v
end
end
+
+ initializer "action_mailer.url_for" do |app|
+ ActionMailer::Base.send(:include, ActionController::UrlFor) if defined?(ActionController)
+ end
end
end \ No newline at end of file
diff --git a/actionmailer/test/base_test.rb b/actionmailer/test/base_test.rb
index 2d3f8ac13a..57bfe2375e 100644
--- a/actionmailer/test/base_test.rb
+++ b/actionmailer/test/base_test.rb
@@ -415,6 +415,21 @@ class BaseTest < ActiveSupport::TestCase
assert_equal("7bit", email.parts[1].content_transfer_encoding)
end
+ test "explicit multipart should be multipart" do
+ mail = BaseMailer.explicit_multipart
+ assert_not_nil(mail.content_type_parameters[:boundary])
+ end
+
+ test "should set a content type if only has an html part" do
+ mail = BaseMailer.html_only
+ assert_equal('text/html', mail.mime_type)
+ end
+
+ test "should set a content type if only has an plain text part" do
+ mail = BaseMailer.plain_text_only
+ assert_equal('text/plain', mail.mime_type)
+ end
+
test "explicit multipart with one part is rendered as body" do
email = BaseMailer.custom_block
assert_equal(0, email.parts.size)
@@ -456,22 +471,8 @@ class BaseTest < ActiveSupport::TestCase
BaseMailer.expects(:welcome).returns(mail)
BaseMailer.welcome.deliver
end
-
- test "explicit multipart should be multipart" do
- mail = BaseMailer.explicit_multipart
- assert_not_nil(mail.content_type_parameters[:boundary])
- end
-
- test "should set a content type if only has an html part" do
- mail = BaseMailer.html_only
- assert_equal('text/html', mail.mime_type)
- end
-
- test "should set a content type if only has an plain text part" do
- mail = BaseMailer.plain_text_only
- assert_equal('text/plain', mail.mime_type)
- end
-
+
+ # Rendering
test "that you can specify a different template" do
mail = BaseMailer.different_template('explicit_multipart_templates')
assert_equal("HTML Explicit Multipart Templates", mail.html_part.body.decoded)
diff --git a/actionmailer/test/old_base/url_test.rb b/actionmailer/test/old_base/url_test.rb
index 5affb47997..ad8b1109c9 100644
--- a/actionmailer/test/old_base/url_test.rb
+++ b/actionmailer/test/old_base/url_test.rb
@@ -1,9 +1,12 @@
require 'abstract_unit'
+require 'action_controller'
class WelcomeController < ActionController::Base
end
class TestMailer < ActionMailer::Base
+ include ActionController::UrlFor
+
default_url_options[:host] = 'www.basecamphq.com'
def signed_up_with_url(recipient)