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