class PipeRpc::Hub::Requests
Attributes
requests[R]
Public Class Methods
new(hub)
click to toggle source
# File lib/pipe_rpc/hub_requests.rb, line 3 def initialize(hub) @hub = hub @requests ={} @uid = 0 wait_for_results_through nil end
Public Instance Methods
[](id)
click to toggle source
# File lib/pipe_rpc/hub_requests.rb, line 21 def [](id) @requests[id] end
evaluate(request)
click to toggle source
# File lib/pipe_rpc/hub_requests.rb, line 12 def evaluate(request) @uid += 1 request.id = @uid @requests[@uid] = request @hub.socket.write request @wait.call until request.result.received? request.result.value end
inject_result_for(id, result)
click to toggle source
# File lib/pipe_rpc/hub_requests.rb, line 25 def inject_result_for(id, result) if request = @requests.delete(id) request.result.value = result else raise "no request with id '#{id.inspect}'" end end
wait_for_results_through(iteration)
click to toggle source
# File lib/pipe_rpc/hub_requests.rb, line 33 def wait_for_results_through(iteration) @wait = iteration.respond_to?(:call) ? iteration : proc{ @hub.handle_message } end