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
# 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
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 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