Class: Combi::ResponseStore
- Inherits:
-
Object
- Object
- Combi::ResponseStore
- Defined in:
- lib/combi/response_store.rb
Instance Method Summary collapse
- #handle_rpc_response(response) ⇒ Object
-
#initialize ⇒ ResponseStore
constructor
A new instance of ResponseStore.
-
#wait_for(correlation_id, timeout) ⇒ Object
Returns an EM::Deferrable.
Constructor Details
#initialize ⇒ ResponseStore
Returns a new instance of ResponseStore.
5 6 7 |
# File 'lib/combi/response_store.rb', line 5 def initialize() @waiters = {} end |
Instance Method Details
#handle_rpc_response(response) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/combi/response_store.rb', line 16 def handle_rpc_response(response) correlation_id = response[:correlation_id] waiter = @waiters[correlation_id] return unless waiter response = response[:response] #Yajl::Parser.parse response[:response], sybolize_keys: true if response.respond_to?(:keys) and response[:error] waiter.fail response else waiter.succeed response end end |
#wait_for(correlation_id, timeout) ⇒ Object
Returns an EM::Deferrable
10 11 12 13 14 |
# File 'lib/combi/response_store.rb', line 10 def wait_for(correlation_id, timeout) waiter = EM::DefaultDeferrable.new add_waiter correlation_id, waiter waiter.timeout timeout, error: 'Timeout::Error' end |