Class: Q::Methods::DelayedJob::QueueMethod

Inherits:
Object
  • Object
show all
Defined in:
lib/q/methods/delayed_job.rb

Overview

Delayed::Job.enqueue NewsletterJob.new(‘lorem ipsum…’, Customers.find(:all).collect(&:email))

Class Method Summary collapse

Class Method Details

.call(options = {}) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/q/methods/delayed_job.rb', line 63

def self.call(options = {})
  base             = options[:base]
  queue_name       = options[:queue_name]
  queue_klass_name = options[:queue_klass_name]
  queue_klass      = base.const_get(queue_klass_name)

  raise Q::DuplicateQueueMethodError.new(base, queue_name) if base.queue.respond_to?(queue_name)

  base.queue.define_singleton_method(queue_name) do |*args|
    ::Delayed::Job.enqueue(queue_klass, *args)
  end
end