Class: Q::Methods::DelayedJob::QueueBuild
- Inherits:
-
Object
- Object
- Q::Methods::DelayedJob::QueueBuild
- Defined in:
- lib/q/methods/delayed_job.rb
Overview
class NewsletterJob < Struct.new(:text, :emails)
def perform
emails.each { |e| NewsletterMailer.deliver_text_to_email(text, e) }
end
end
Class Method Summary collapse
Class Method Details
.call(options = {}, &job) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/q/methods/delayed_job.rb', line 31 def self.call(={}, &job) base = [:base] queue_name = [:queue_name] queue_klass_name = [:queue_klass_name] raise NotSetupError unless ActiveRecord::Base.connection.table_exists? 'delayed_jobs' raise Q::DuplicateQueueClassError.new(base, queue_klass_name) if Q.const_defined_on?(base, queue_klass_name) queue_klass = Class.new do def self.perform(*args) @job.call(*args) end def self.job=(job) @job = job end def self.queue=(queue) @queue = queue end end queue_klass.job = job queue_klass.queue = queue_name queue_klass = base.const_set(queue_klass_name, queue_klass) return true end |