Sha256: 1aa1b1d965db24fb021cc970d3e814c702f94e0b763faf8d1b8a8bbbb77e9016

Contents?: true

Size: 932 Bytes

Versions: 1

Compression:

Stored size: 932 Bytes

Contents

module SphinxHelpers
  include Sidekiq::Util

  def sphinx
    @sphinx ||= SphinxController.new
  end

  def index(*indices)
    yield if block_given?

    ThinkingSphinx::Deltas::SidekiqDelta.clear_thinking_sphinx_queues
    sphinx.index *indices
    sleep 0.25
  end

  def work
    client    = Redis.new(:url => "redis://localhost:6379/")
    namespace = Redis::Namespace.new('test', :redis => client)

    queues = namespace.sscan_each("queues").to_a
    queues.each do |queue_name|
      while message = namespace.lpop("queue:#{queue_name}")
        message = JSON.parse(message)
        message['class'].constantize.new.perform(*message['args'])
      end
    end
  end
end

RSpec.configure do |config|
  config.include SphinxHelpers

  config.before :all do |group|
    sphinx.setup && sphinx.start if group.class.metadata[:live]
  end

  config.after :all do |group|
    sphinx.stop if group.class.metadata[:live]
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ts-sidekiq-delta-0.4.0 spec/acceptance/support/sphinx_helpers.rb