Class: ResqueDelivery

Inherits:
Object
  • Object
show all
Defined in:
lib/resque_delivery.rb

Defined Under Namespace

Classes: SendMail, SettingsError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ ResqueDelivery

Returns a new instance of ResqueDelivery.

Raises:



6
7
8
9
10
11
12
13
14
15
# File 'lib/resque_delivery.rb', line 6

def initialize(options)
  @delivery_method = options[:delivery_method]
  @queue = options[:queue] || :medium
  @job_class = options[:job_class] || SendMail
  @job_class = @job_class.constantize if @job_class.is_a?(String)

  @job_class.instance_variable_set(:@queue, @queue)

  raise SettingsError, "you must specify config.action_mailer.resque_delivery_settings to contain a :delivery_method" unless @delivery_method
end

Instance Attribute Details

#delivery_methodObject (readonly)

Returns the value of attribute delivery_method.



4
5
6
# File 'lib/resque_delivery.rb', line 4

def delivery_method
  @delivery_method
end

#job_classObject (readonly)

Returns the value of attribute job_class.



4
5
6
# File 'lib/resque_delivery.rb', line 4

def job_class
  @job_class
end

#queueObject (readonly)

Returns the value of attribute queue.



4
5
6
# File 'lib/resque_delivery.rb', line 4

def queue
  @queue
end

Instance Method Details

#deliver!(mail) ⇒ Object



17
18
19
20
# File 'lib/resque_delivery.rb', line 17

def deliver!(mail)
  # serialize the mail object for later sending
  Resque.enqueue_to(queue, job_class, delivery_method, mail.encoded)
end