class IbRubyProxy::Client::CallbacksResponseHandler::BlockCallbackHandler
b_proxy_service.rb:13@private
Attributes
block[R]
discriminate_by_argument_nth[R]
Public Class Methods
new(discriminate_by_argument_nth)
click to toggle source
# File lib/ib_ruby_proxy/client/callbacks_response_handler.rb, line 99 def initialize(discriminate_by_argument_nth) @discriminate_by_argument_nth = discriminate_by_argument_nth @blocks_by_discriminator = {} end
Public Instance Methods
callback_received(callback_name, *arguments)
click to toggle source
# File lib/ib_ruby_proxy/client/callbacks_response_handler.rb, line 119 def callback_received(callback_name, *arguments) if callback_name.to_s == 'error' raise StandardError, arguments.join('. ') else block = if @discriminate_by_argument_nth @blocks_by_discriminator[arguments[@discriminate_by_argument_nth]] else @block end block&.call(callback_name, *arguments) end end
method_invoked(*arguments, &block)
click to toggle source
# File lib/ib_ruby_proxy/client/callbacks_response_handler.rb, line 104 def method_invoked(*arguments, &block) if @discriminate_by_argument_nth discrminator = arguments[@discriminate_by_argument_nth] unless discrminator raise "No argument #{@discriminate_by_argument_nth} to discriminate with?"\ " #{arguments.inspect}" end @blocks_by_discriminator[discrminator] = block else @block = block end nil end