diff options
Diffstat (limited to 'actionmailer')
-rw-r--r-- | actionmailer/CHANGELOG.md | 2 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer.rb | 1 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/base.rb | 11 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/queued_message.rb | 37 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/railtie.rb | 2 | ||||
-rw-r--r-- | actionmailer/test/abstract_unit.rb | 1 | ||||
-rw-r--r-- | actionmailer/test/base_test.rb | 13 | ||||
-rw-r--r-- | actionmailer/test/mailers/async_mailer.rb | 3 |
8 files changed, 2 insertions, 68 deletions
diff --git a/actionmailer/CHANGELOG.md b/actionmailer/CHANGELOG.md index 2f99b61b50..9feca324a3 100644 --- a/actionmailer/CHANGELOG.md +++ b/actionmailer/CHANGELOG.md @@ -28,8 +28,6 @@ * Raise an `ActionView::MissingTemplate` exception when no implicit template could be found. *Damien Mathieu* -* Asynchronously send messages via the Rails Queue *Brian Cardarella* - * Allow callbacks to be defined in mailers similar to `ActionController::Base`. You can configure default settings, headers, attachments, delivery settings or change delivery using `before_filter`, `after_filter` etc. *Justin S. Leitgeb* diff --git a/actionmailer/lib/action_mailer.rb b/actionmailer/lib/action_mailer.rb index a9642dc695..cfbe2f1cbd 100644 --- a/actionmailer/lib/action_mailer.rb +++ b/actionmailer/lib/action_mailer.rb @@ -44,5 +44,4 @@ module ActionMailer autoload :MailHelper autoload :TestCase autoload :TestHelper - autoload :QueuedMessage end diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb index 4a61bac0a5..a3c0b2c6bd 100644 --- a/actionmailer/lib/action_mailer/base.rb +++ b/actionmailer/lib/action_mailer/base.rb @@ -1,10 +1,8 @@ require 'mail' -require 'action_mailer/queued_message' require 'action_mailer/collector' require 'active_support/core_ext/string/inflections' require 'active_support/core_ext/hash/except' require 'active_support/core_ext/module/anonymous' -require 'active_support/queueing' require 'action_mailer/log_subscriber' module ActionMailer @@ -361,8 +359,6 @@ module ActionMailer # # * <tt>deliveries</tt> - Keeps an array of all the emails sent out through the Action Mailer with # <tt>delivery_method :test</tt>. Most useful for unit and functional testing. - # - # * <tt>queue</> - The queue that will be used to deliver the mail. The queue should expect a job that responds to <tt>run</tt>. class Base < AbstractController::Base include DeliveryMethods abstract! @@ -389,9 +385,6 @@ module ActionMailer parts_order: [ "text/plain", "text/enriched", "text/html" ] }.freeze - class_attribute :queue - self.queue = ActiveSupport::SynchronousQueue.new - class << self # Register one or more Observers which will be notified when mail is delivered. def register_observers(*observers) @@ -483,8 +476,8 @@ module ActionMailer end def method_missing(method_name, *args) - if action_methods.include?(method_name.to_s) - QueuedMessage.new(queue, self, method_name, *args) + if respond_to?(method_name) + new(method_name, *args).message else super end diff --git a/actionmailer/lib/action_mailer/queued_message.rb b/actionmailer/lib/action_mailer/queued_message.rb deleted file mode 100644 index 8d200617c4..0000000000 --- a/actionmailer/lib/action_mailer/queued_message.rb +++ /dev/null @@ -1,37 +0,0 @@ -require 'delegate' - -module ActionMailer - class QueuedMessage < ::Delegator - attr_reader :queue - - def initialize(queue, mailer_class, method_name, *args) - @queue = queue - @job = DeliveryJob.new(mailer_class, method_name, args) - end - - def __getobj__ - @job.message - end - - # Queues the message for delivery. - def deliver - tap { @queue.push @job } - end - - class DeliveryJob - def initialize(mailer_class, method_name, args) - @mailer_class = mailer_class - @method_name = method_name - @args = args - end - - def message - @message ||= @mailer_class.send(:new, @method_name, *@args).message - end - - def run - message.deliver - end - end - end -end diff --git a/actionmailer/lib/action_mailer/railtie.rb b/actionmailer/lib/action_mailer/railtie.rb index 59dc26841f..7677ff3a7c 100644 --- a/actionmailer/lib/action_mailer/railtie.rb +++ b/actionmailer/lib/action_mailer/railtie.rb @@ -19,8 +19,6 @@ module ActionMailer options.javascripts_dir ||= paths["public/javascripts"].first options.stylesheets_dir ||= paths["public/stylesheets"].first - options.queue ||= app.queue - # make sure readers methods get compiled options.asset_host ||= app.config.asset_host options.relative_url_root ||= app.config.relative_url_root diff --git a/actionmailer/test/abstract_unit.rb b/actionmailer/test/abstract_unit.rb index 4b38d4bd31..99c44179fd 100644 --- a/actionmailer/test/abstract_unit.rb +++ b/actionmailer/test/abstract_unit.rb @@ -11,7 +11,6 @@ end require 'minitest/autorun' require 'action_mailer' require 'action_mailer/test_case' -require 'active_support/queueing' silence_warnings do # These external dependencies have warnings :/ diff --git a/actionmailer/test/base_test.rb b/actionmailer/test/base_test.rb index 170923673b..b06c465380 100644 --- a/actionmailer/test/base_test.rb +++ b/actionmailer/test/base_test.rb @@ -3,13 +3,11 @@ require 'abstract_unit' require 'set' require 'action_dispatch' -require 'active_support/queueing' require 'active_support/time' require 'mailers/base_mailer' require 'mailers/proc_mailer' require 'mailers/asset_mailer' -require 'mailers/async_mailer' class BaseTest < ActiveSupport::TestCase def teardown @@ -422,17 +420,6 @@ class BaseTest < ActiveSupport::TestCase assert_equal(1, BaseMailer.deliveries.length) end - test "delivering message asynchronously" do - AsyncMailer.delivery_method = :test - AsyncMailer.deliveries.clear - - AsyncMailer.welcome.deliver - assert_equal 0, AsyncMailer.deliveries.length - - AsyncMailer.queue.drain - assert_equal 1, AsyncMailer.deliveries.length - end - test "calling deliver, ActionMailer should yield back to mail to let it call :do_delivery on itself" do mail = Mail::Message.new mail.expects(:do_delivery).once diff --git a/actionmailer/test/mailers/async_mailer.rb b/actionmailer/test/mailers/async_mailer.rb deleted file mode 100644 index c21a464f38..0000000000 --- a/actionmailer/test/mailers/async_mailer.rb +++ /dev/null @@ -1,3 +0,0 @@ -class AsyncMailer < BaseMailer - self.queue = ActiveSupport::TestQueue.new -end |