Sha256: c8f25b2325781a9319afec0b4cf96bf0e6e5b13495a92b53f4b7f22e7b4124ad

Contents?: true

Size: 959 Bytes

Versions: 1

Compression:

Stored size: 959 Bytes

Contents

require 'resque_spec'

module ResqueSpec
  module SchedulerExt
    def enqueue_at(time, klass, *args)
      ResqueSpec.enqueue_at(time, klass, *args)
    end

    def enqueue_in(time, klass, *args)
      ResqueSpec.enqueue_in(time, klass, *args)
    end
    
    def remove_delayed(klass, *args)
      ResqueSpec.remove_delayed(klass, *args)
    end
  end

  def enqueue_at(time, klass, *args)
    store(schedule_queue_name(klass), :class => klass.to_s, :time  => time, :args => args)
  end

  def enqueue_in(time, klass, *args)
    enqueue_at(Time.now + time, klass, *args)
  end
  
  def remove_delayed(klass, *args)
    queue_by_name(schedule_queue_name(klass)).delete_if do |job|
      job[:class] == klass.to_s && job[:args] == args
    end
  end
  
  def schedule_for(klass)
    queues[schedule_queue_name(klass)]
  end

  private

  def schedule_queue_name(klass)
    "#{queue_name(klass)}_scheduled"
  end
end

Resque.extend(ResqueSpec::SchedulerExt)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
resque_spec-0.6.8 lib/resque_spec/scheduler.rb