module CitrusRpc::RpcClient::Proxy

Proxy

Private Instance Methods

create_proxy(args={}) click to toggle source

Create proxy

@param [Hash] args Options

@option args [Class] remote @option args [Hash] attach @option args [#call] proxy_cb

@private

# File lib/citrus-rpc/rpc-client/proxy.rb, line 25
def create_proxy args={}
  res = Object.new
  methods = args[:remote].instance_methods
  methods.each { |method|
    res.define_singleton_method method, proc{ |*inner_args, &block|
      args[:proxy_cb].call args[:service], method, args[:attach], false, *inner_args, &block
    }
  }
  res
end