From f9da785d0b1b22317cfca25c15fb555e9016accb Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Fri, 21 Dec 2012 15:42:47 -0800 Subject: Move background jobs to the 'jobs' branch until fully baked. Not shipping with Rails 4.0. --- actionmailer/lib/action_mailer.rb | 1 - actionmailer/lib/action_mailer/base.rb | 11 ++----- actionmailer/lib/action_mailer/queued_message.rb | 37 ------------------------ actionmailer/lib/action_mailer/railtie.rb | 2 -- 4 files changed, 2 insertions(+), 49 deletions(-) delete mode 100644 actionmailer/lib/action_mailer/queued_message.rb (limited to 'actionmailer/lib') 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 # # * deliveries - Keeps an array of all the emails sent out through the Action Mailer with # delivery_method :test. Most useful for unit and functional testing. - # - # * queue - The queue that will be used to deliver the mail. The queue should expect a job that responds to run. 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 -- cgit v1.2.3