class FakeServiceBus::API

Attributes

options[R]
queues[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/fake_servicebus/api.rb, line 19
def initialize(options = {})
  @queues    = options.fetch(:queues)
  @options   = options
  @halt      = false
  @timer     = Thread.new do
    until @halt
      queues.timeout_messages!
      sleep(0.1)
    end
  end
end

Public Instance Methods

attempt_once(action, *args) click to toggle source
# File lib/fake_servicebus/api.rb, line 50
def attempt_once(action, *args)
  queues.transaction do
    action.call(*args)
  end
end
call(action, request, *args) click to toggle source
# File lib/fake_servicebus/api.rb, line 31
def call(action, request, *args)
  if FakeServiceBus::Actions.const_defined?(action)
    action = FakeServiceBus::Actions.const_get(action).new(options.merge({:request => request}))
    if action.respond_to?(:satisfied?)
      result = nil
      until @halt
        result = attempt_once(action, *args)
        break if action.satisfied?
        sleep(0.1)
      end
      result
    else
      attempt_once(action, *args)
    end
  else
    fail InvalidAction, "Unknown (or not yet implemented) action: #{action}"
  end
end
expire() click to toggle source
# File lib/fake_servicebus/api.rb, line 62
def expire
  queues.expire
end
reset() click to toggle source

Fake actions

# File lib/fake_servicebus/api.rb, line 58
def reset
  queues.reset
end
stop() click to toggle source
# File lib/fake_servicebus/api.rb, line 66
def stop
  @halt = true
end