class Que::Scheduler::ToEnqueue

Public Class Methods

active_job_loaded?() click to toggle source
# File lib/que/scheduler/to_enqueue.rb, line 25
def active_job_loaded?
  !!active_job_version
end
active_job_version() click to toggle source
# File lib/que/scheduler/to_enqueue.rb, line 29
def active_job_version
  Gem.loaded_specs["activejob"]&.version
end
active_job_version_supports_queues?() click to toggle source
# File lib/que/scheduler/to_enqueue.rb, line 33
def active_job_version_supports_queues?
  # Supporting queue name in ActiveJob was removed in Rails 4.2.3
  # https://github.com/rails/rails/pull/19498
  # and readded in Rails 6.0.3
  # https://github.com/rails/rails/pull/38635
  ToEnqueue.active_job_version && ToEnqueue.active_job_version >=
    Gem::Version.create("6.0.3")
end
create(options) click to toggle source
# File lib/que/scheduler/to_enqueue.rb, line 15
def create(options)
  type_from_job_class(options.fetch(:job_class)).new(
    options.merge(run_at: Que::Scheduler::Db.now)
  )
end
valid_job_class?(job_class) click to toggle source
# File lib/que/scheduler/to_enqueue.rb, line 21
def valid_job_class?(job_class)
  type_from_job_class(job_class).present?
end

Private Class Methods

type_from_job_class(job_class) click to toggle source
# File lib/que/scheduler/to_enqueue.rb, line 44
def type_from_job_class(job_class)
  types.each do |type, implementation|
    return implementation if job_class < type
  end
  nil
end
types() click to toggle source
# File lib/que/scheduler/to_enqueue.rb, line 51
def types
  @types ||=
    begin
      hash = {
        ::Que::Job => QueJobType,
      }
      hash[::ActiveJob::Base] = ActiveJobType if ToEnqueue.active_job_loaded?
      hash
    end
end