Class: XMLRPC::Client::Proxy
- Inherits:
-
Object
- Object
- XMLRPC::Client::Proxy
- Defined in:
- lib/xmlrpc/client.rb
Overview
XML-RPC calls look nicer!
You can call any method onto objects of that class - the object handles XMLRPC::Client::Proxy#method_missing and will forward the method call to a XML-RPC server.
Don’t use this class directly, instead use the public instance method XMLRPC::Client#proxy or XMLRPC::Client#proxy2.
require "xmlrpc/client"
server = XMLRPC::Client.new("www.ruby-lang.org", "/RPC2", 80)
michael = server.proxy("michael")
michael2 = server.proxy("michael", 4)
# both calls should return the same value '9'.
p michael.add(4,5)
p michael2.add(5)
Instance Method Summary collapse
-
#initialize(server, prefix, args = [], meth = :call, delim = ".") ⇒ Proxy
constructor
Creates an object which provides XMLRPC::Client::Proxy#method_missing.
-
#method_missing(mid, *args) ⇒ Object
Every method call is forwarded to the XML-RPC server defined in XMLRPC::Client::Proxy#new.
Constructor Details
#initialize(server, prefix, args = [], meth = :call, delim = ".") ⇒ Proxy
Creates an object which provides XMLRPC::Client::Proxy#method_missing.
The given server
must be an instance of XMLRPC::Client, which is the XML-RPC server to be used for a XML-RPC call.
prefix
and delim
will be prepended to the method name called onto this object.
An optional parameter meth
is the method to use for a RPC. It can be either, call, call2, call_async, call2_async
args
are arguments which are automatically given to every XML-RPC call before being provided through method_missing
.
617 618 619 620 621 622 |
# File 'lib/xmlrpc/client.rb', line 617 def initialize(server, prefix, args=[], meth=:call, delim=".") @server = server @prefix = prefix ? prefix + delim : "" @args = args @meth = meth end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(mid, *args) ⇒ Object
Every method call is forwarded to the XML-RPC server defined in XMLRPC::Client::Proxy#new.
Note: Inherited methods from class Object cannot be used as XML-RPC names, because they get around method_missing
.
629 630 631 632 633 |
# File 'lib/xmlrpc/client.rb', line 629 def method_missing(mid, *args) pre = @prefix + mid.to_s arg = @args + args @server.send(@meth, pre, *arg) end |