class PipeRpc::Hub::Request
Constants
- CALL_LINENO
Attributes
hub[R]
Public Class Methods
new(hub, body)
click to toggle source
Calls superclass method
PipeRpc::Request::new
# File lib/pipe_rpc/hub_request.rb, line 5 def initialize(hub, body) @hub = hub super body end
Public Instance Methods
evaluate_result(result = nil) { |: result)| ... }
click to toggle source
# File lib/pipe_rpc/hub_request.rb, line 21 def evaluate_result(result = nil, &block) result = Result.new(self, block_given? ? yield : result) rescue Exception => e result = ErrorResult.new(self, e) ensure asynchronous = result.value == evaluate_result_proc @hub.socket.write(result.to_response) unless asynchronous return result.value end
evaluate_result_proc()
click to toggle source
# File lib/pipe_rpc/hub_request.rb, line 31 def evaluate_result_proc @evaluate_result_proc ||= proc do |result = nil, &block| evaluate_result(result, &block) end end
handle()
click to toggle source
# File lib/pipe_rpc/hub_request.rb, line 12 def handle evaluate_result do # the block is passed for asynchronous evaluation mapped_arguments = @hub.transport_mapper.from_transport arguments @hub.servers[server].__send__(method, *mapped_arguments, &evaluate_result_proc) end end