Class: ActiveJob::QueueAdapters::TestAdapter
- Inherits:
-
Object
- Object
- ActiveJob::QueueAdapters::TestAdapter
- Defined in:
- lib/active_job/cancel/queue_adapters/test_adapter.rb,
lib/active_job/cancel/queue_adapters/test_adapter/rails.rb,
lib/active_job/cancel/queue_adapters/test_adapter/rails_4.rb
Overview
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.
Instance Method Summary collapse
- #enqueue(job) ⇒ Object
- #enqueue_at(job, timestamp) ⇒ Object
- #fixup_last_job(job) ⇒ Object
-
#initialize ⇒ TestAdapter
constructor
A new instance of TestAdapter.
- #job_to_hash(job, extras = {}) ⇒ Object
- #original_enqueue ⇒ Object
- #original_enqueue_at ⇒ Object
- #original_job_to_hash ⇒ Object
Constructor Details
#initialize ⇒ TestAdapter
Returns a new instance of TestAdapter.
9 10 11 12 13 14 15 16 17 |
# 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 |
Instance Method Details
#enqueue(job) ⇒ Object
12 13 14 15 16 |
# 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 |
#enqueue_at(job, timestamp) ⇒ Object
18 19 20 21 22 |
# File 'lib/active_job/cancel/queue_adapters/test_adapter/rails_4.rb', line 18 def enqueue_at(job, ) result = original_enqueue_at(job, ) fixup_last_job(job) result end |
#fixup_last_job(job) ⇒ Object
7 8 9 10 |
# 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 = {}) ⇒ Object
6 7 8 9 10 11 12 13 |
# 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 |
#original_enqueue ⇒ Object
4 |
# File 'lib/active_job/cancel/queue_adapters/test_adapter/rails_4.rb', line 4 alias original_enqueue enqueue |
#original_enqueue_at ⇒ Object
5 |
# File 'lib/active_job/cancel/queue_adapters/test_adapter/rails_4.rb', line 5 alias original_enqueue_at enqueue_at |
#original_job_to_hash ⇒ Object
4 |
# File 'lib/active_job/cancel/queue_adapters/test_adapter/rails.rb', line 4 alias original_job_to_hash job_to_hash |