class ActiveJob::QueueAdapters::TestAdapter

Unfortunately we need to monkey patch the Rails TestAdapter class, because it does not save the job id on the enqueued_jobs array. We rely on a persisted id to fulfill the canceling of any given job id.

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/active_job/cancel/queue_adapters/test_adapter.rb, line 9
def initialize
  if Gem::Requirement.new('>= 5.0').satisfied_by? ActiveJob.version
    require 'active_job/cancel/queue_adapters/test_adapter/rails'
  elsif Gem::Requirement.new('~> 4.2').satisfied_by? ActiveJob.version
    require 'active_job/cancel/queue_adapters/test_adapter/rails_4'
  end

  super
end

Public Instance Methods

enqueue(job) click to toggle source
# File lib/active_job/cancel/queue_adapters/test_adapter/rails_4.rb, line 12
def enqueue(job)
  result = original_enqueue(job)
  fixup_last_job(job)
  result
end
Also aliased as: original_enqueue
enqueue_at(job, timestamp) click to toggle source
# File lib/active_job/cancel/queue_adapters/test_adapter/rails_4.rb, line 18
def enqueue_at(job, timestamp)
  result = original_enqueue_at(job, timestamp)
  fixup_last_job(job)
  result
end
Also aliased as: original_enqueue_at
fixup_last_job(job) click to toggle source
# File lib/active_job/cancel/queue_adapters/test_adapter/rails_4.rb, line 7
def fixup_last_job(job)
  list = perform_enqueued_jobs ? performed_jobs : enqueued_jobs
  list.last[:id] = job.job_id
end
job_to_hash(job, extras = {}) click to toggle source
# File lib/active_job/cancel/queue_adapters/test_adapter/rails.rb, line 6
def job_to_hash(job, extras = {})
  original_job_to_hash(job, extras).merge!({
    id: job.job_id,
    job: job.class,
    args: job.serialize.fetch('arguments'),
    queue: job.queue_name
  })
end
Also aliased as: original_job_to_hash
original_enqueue(job)
Alias for: enqueue
original_enqueue_at(job, timestamp)
Alias for: enqueue_at
original_job_to_hash(job, extras = {})
Alias for: job_to_hash