class Delayed::Backend::JobPreparer
Attributes
args[R]
options[R]
Public Class Methods
new(*args)
click to toggle source
# File lib/delayed/backend/job_preparer.rb, line 6 def initialize(*args) @options = args.extract_options!.dup @args = args end
Public Instance Methods
prepare()
click to toggle source
# File lib/delayed/backend/job_preparer.rb, line 11 def prepare set_payload set_queue_name set_priority handle_deprecation options end
Private Instance Methods
handle_deprecation()
click to toggle source
# File lib/delayed/backend/job_preparer.rb, line 38 def handle_deprecation if args.size > 0 warn '[DEPRECATION] Passing multiple arguments to `#enqueue` is deprecated. Pass a hash with :priority and :run_at.' options[:priority] = args.first || options[:priority] options[:run_at] = args[1] end # rubocop:disable GuardClause unless options[:payload_object].respond_to?(:perform) raise ArgumentError, 'Cannot enqueue items which do not respond to perform' end # rubocop:enabled GuardClause end
set_payload()
click to toggle source
# File lib/delayed/backend/job_preparer.rb, line 21 def set_payload options[:payload_object] ||= args.shift end
set_priority()
click to toggle source
# File lib/delayed/backend/job_preparer.rb, line 33 def set_priority queue_attribute = Delayed::Worker.queue_attributes[options[:queue]] options[:priority] ||= (queue_attribute && queue_attribute[:priority]) || Delayed::Worker.default_priority end
set_queue_name()
click to toggle source
# File lib/delayed/backend/job_preparer.rb, line 25 def set_queue_name if options[:queue].nil? && options[:payload_object].respond_to?(:queue_name) options[:queue] = options[:payload_object].queue_name else options[:queue] ||= Delayed::Worker.default_queue_name end end