Sha256: 86fbbe4e456c7238a65cb2020eb6abdee214b0b1115c98c6bc2df175ab2a89ba
Contents?: true
Size: 1.51 KB
Versions: 3
Compression:
Stored size: 1.51 KB
Contents
require 'active_support/core_ext/array/extract_options' module Delayed module Backend class JobPreparer attr_reader :options, :args def initialize(*args) @options = args.extract_options!.dup @args = args end def prepare set_payload set_queue_name set_priority handle_deprecation options end private def set_payload options[:payload_object] ||= args.shift end 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 def set_priority queue_attribute = Delayed::Worker.queue_attributes[options[:queue]] options[:priority] ||= (queue_attribute && queue_attribute[:priority]) || Delayed::Worker.default_priority end 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 end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
delayed_job-4.1.13 | lib/delayed/backend/job_preparer.rb |
delayed_job-4.1.12 | lib/delayed/backend/job_preparer.rb |
delayed_job-4.1.12.rc1 | lib/delayed/backend/job_preparer.rb |