Sha256: a6c94668aab832b89ccbda3af9435a519bd09538b7a512db063c51af6d013eb9

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

module ResqueUnitWithoutMock::Scheduler
  def self.included(base)
    base.extend(ClassMethods)
  end

  module ClassMethods
    # resque_unit前提で書かれた既存テストではResque.enqueue_atするとすぐにエンキューしながら、
    # タイムスタンプを確認している.
    # 実物Redisを使うにあたって同じ振る舞いにしたいのでクラス変数を使ってresque_unitと同じことを実現する.
    def enqueue_at(timestamp, klass, *args)
      enqueue_at_with_queue(
        queue_for(klass), timestamp, klass, *args
      )
    end

    def enqueue_at_with_queue(queue, timestamp, klass, *args)
      @@enqueue_ats ||= {}
      @@enqueue_ats[queue] ||= []
      @@enqueue_ats[queue] << { timestamp: timestamp, klass: klass, args: args }
      Resque.enqueue_to(queue, klass, *args)
    end

    def enqueue_ats(queue)
      @@enqueue_ats ||= {}
      @@enqueue_ats[queue] || []
    end

    def reset!
      @@enqueue_ats = {}
    end
  end
end

Resque.include(ResqueUnitWithoutMock::Scheduler)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
resque_unit_without_mock-0.1.2 lib/resque_unit_without_mock/scheduler.rb