Constructors ——————————————————————-
# File xmlrpc/client.rb, line 295 def initialize(host=nil, path=nil, port=nil, proxy_host=nil, proxy_port=nil, user=nil, password=nil, use_ssl=nil, timeout=nil) @http_header_extra = nil @http_last_response = nil @cookie = nil @host = host || "localhost" @path = path || "/RPC2" @proxy_host = proxy_host @proxy_port = proxy_port @proxy_host ||= 'localhost' if @proxy_port != nil @proxy_port ||= 8080 if @proxy_host != nil @use_ssl = use_ssl || false @timeout = timeout || 30 if use_ssl require "net/https" @port = port || 443 else @port = port || 80 end @user, @password = user, password set_auth # convert ports to integers @port = @port.to_i if @port != nil @proxy_port = @proxy_port.to_i if @proxy_port != nil # HTTP object for synchronous calls Net::HTTP.version_1_2 @http = Net::HTTP.new(@host, @port, @proxy_host, @proxy_port) @http.use_ssl = @use_ssl if @use_ssl @http.read_timeout = @timeout @http.open_timeout = @timeout @parser = nil @create = nil end
Call methods ————————————————————–
# File xmlrpc/client.rb, line 409 def call(method, *args) ok, param = call2(method, *args) if ok param else raise param end end
# File xmlrpc/client.rb, line 418 def call2(method, *args) request = create().methodCall(method, *args) data = do_rpc(request, false) parser().parseMethodResponse(data) end
# File xmlrpc/client.rb, line 433 def call2_async(method, *args) request = create().methodCall(method, *args) data = do_rpc(request, true) parser().parseMethodResponse(data) end
# File xmlrpc/client.rb, line 424 def call_async(method, *args) ok, param = call2_async(method, *args) if ok param else raise param end end
Multicall methods ————————————————————–
# File xmlrpc/client.rb, line 442 def multicall(*methods) ok, params = multicall2(*methods) if ok params else raise params end end
# File xmlrpc/client.rb, line 451 def multicall2(*methods) gen_multicall(methods, false) end
# File xmlrpc/client.rb, line 464 def multicall2_async(*methods) gen_multicall(methods, true) end
# File xmlrpc/client.rb, line 455 def multicall_async(*methods) ok, params = multicall2_async(*methods) if ok params else raise params end end
# File xmlrpc/client.rb, line 340 def new2(uri, proxy=nil, timeout=nil) if match = /^([^:]+):\/\/(([^@]+)@)?([^\/]+)(\/.*)?$/.match(uri) proto = match[1] user, passwd = (match[3] || "").split(":") host, port = match[4].split(":") path = match[5] if proto != "http" and proto != "https" raise "Wrong protocol specified. Only http or https allowed!" end else raise "Wrong URI as parameter!" end proxy_host, proxy_port = (proxy || "").split(":") self.new(host, path, port, proxy_host, proxy_port, user, passwd, (proto == "https"), timeout) end
# File xmlrpc/client.rb, line 362 def new3(hash={}) # convert all keys into lowercase strings h = {} hash.each { |k,v| h[k.to_s.downcase] = v } self.new(h['host'], h['path'], h['port'], h['proxy_host'], h['proxy_port'], h['user'], h['password'], h['use_ssl'], h['timeout']) end
# File xmlrpc/client.rb, line 402 def password=(new_password) @password = new_password set_auth end
Proxy generating methods ------------------------------------------
# File xmlrpc/client.rb, line 471 def proxy(prefix=nil, *args) Proxy.new(self, prefix, args, :call) end
# File xmlrpc/client.rb, line 475 def proxy2(prefix=nil, *args) Proxy.new(self, prefix, args, :call2) end
# File xmlrpc/client.rb, line 483 def proxy2_async(prefix=nil, *args) Proxy.new(self, prefix, args, :call2_async) end
# File xmlrpc/client.rb, line 479 def proxy_async(prefix=nil, *args) Proxy.new(self, prefix, args, :call_async) end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.