Module: ActionMailer::Enqueable

Defined in:
lib/action_mailer/enqueable/version.rb,
lib/action_mailer/enqueable/deferred.rb,
lib/action_mailer/enqueable.rb

Defined Under Namespace

Modules: RecordEncoder Classes: Deferred

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_symbol, *parameters) ⇒ Object

:nodoc:



11
12
13
14
15
16
17
18
19
# File 'lib/action_mailer/enqueable.rb', line 11

def method_missing(method_symbol, *parameters) #:nodoc:
  if match = matches_dynamic_method?(method_symbol)
    if queue && match[1] == 'deliver'
      enqueue(match[2], parameters)
    else
      super
    end
  end
end

Class Method Details

.extended(base) ⇒ Object



7
8
9
# File 'lib/action_mailer/enqueable.rb', line 7

def self.extended(base)
  base.class_attribute :queue
end

Instance Method Details

#enqueue(method_id, arguments) ⇒ Object



21
22
23
24
25
# File 'lib/action_mailer/enqueable.rb', line 21

def enqueue(method_id, arguments)
  deferred = Deferred.new(:mailer_name => name, :method_id => method_id, :arguments => arguments)
  queue.enqueue(deferred)
  deferred
end