Sha256: e3508146742ed865b97022832e5a2af3466b82e6d6a1184beba2498a952e1703

Contents?: true

Size: 1.1 KB

Versions: 5

Compression:

Stored size: 1.1 KB

Contents

require 'resque'

module Resque
  class Job
    def self.create(queue, klass, *args)
      raise ::Resque::NoQueueError.new("Jobs must be placed onto a queue.") if !queue
      raise ::Resque::NoClassError.new("Jobs must be given a class.") if klass.to_s.empty?
      ResqueSpec.enqueue(queue, klass, *args)
    end

    def self.destroy(queue, klass, *args)
      raise ::Resque::NoQueueError.new("Jobs must have been placed onto a queue.") if !queue
      raise ::Resque::NoClassError.new("Jobs must have been given a class.") if klass.to_s.empty?

      old_count = ResqueSpec.queues[queue].size

      ResqueSpec.dequeue(queue, klass, *args)

      old_count - ResqueSpec.queues[queue].size
    end
  end

  def enqueue(klass, *args)
    if ResqueSpec.inline
      run_after_enqueue(klass, *args)
      Job.create(queue_from_class(klass), klass, *args)
    else
      Job.create(queue_from_class(klass), klass, *args)
      run_after_enqueue(klass, *args)
    end
  end

  private

  def run_after_enqueue(klass, *args)
    Plugin.after_enqueue_hooks(klass).each do |hook|
      klass.send(hook, *args)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
resque_spec-0.6.8 lib/resque_spec/ext.rb
resque_spec-0.6.7 lib/resque_spec/ext.rb
resque_spec-0.6.6 lib/resque_spec/ext.rb
resque_spec-0.6.5 lib/resque_spec/ext.rb
resque_spec-0.6.4 lib/resque_spec/ext.rb