Module: XKoon::Proxy

Defined in:
lib/xkoon/proxy.rb

Overview

Proxy Module: Provides transparent proxying of methods to a Peer.

Defined Under Namespace

Classes: Base

Class Method Summary collapse

Class Method Details

.for_peer(peer, handler = XKoon::Handler) ⇒ Object

Create Proxy for Peer: Creates a new Base proxy object around a given peer and optional handler.

Parameters:

  • peer (Hash)

    RxIO Peer (Client / Server) Hash

  • handler (Module) (defaults to: XKoon::Handler)

    Handler module



22
23
24
# File 'lib/xkoon/proxy.rb', line 22

def self.for_peer peer, handler = XKoon::Handler
	Base.new peer, handler
end

.method_missing(name, *args) ⇒ Object

Method Missing: Proxy all method calls into requests to the Service Peer.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/xkoon/proxy.rb', line 28

def self.method_missing name, *args

	# Ensure we have at least a peer, handler and message
	raise "Missing arguments in call to [#{name}] (peer, handler, msg)" unless args.size >= 3

	# Get Peer & Handler from Args
	peer = args.slice! 0
	handler = args.slice! 0

	# Acquire Payload
	msg = args.slice! 0

	# Send Request
	handler.send_request peer, name, msg
end