32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/q/methods/base.rb', line 32
def queue(*args, &block)
queue = self.class_variable_get(:@@_q_queue)
return queue unless block_given?
queue_name = args.shift
job = Q.proc_to_lambda(&block)
raise "first argument #{queue_name.inspect} must be a symbol to define a queue" unless queue_name.is_a?(Symbol)
options = { base: self,
queue_name: queue_name,
queue_klass_name: Q.camelize(queue_name) }
queue_klass = self.class_variable_get(:@@_q_klass)
queue_klass::QueueBuild.call(options, &job)
queue_klass::QueueMethod.call(options)
end
|