Class: OpenX::XmlrpcClient

Inherits:
Object
  • Object
show all
Defined in:
lib/openx/xmlrpc_client.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(server, uri) ⇒ XmlrpcClient

Returns a new instance of XmlrpcClient.



37
38
39
40
# File 'lib/openx/xmlrpc_client.rb', line 37

def initialize(server, uri)
  @server = server
  @uri = uri
end

Class Attribute Details

.retry_on_http_errorObject

Returns the value of attribute retry_on_http_error.



22
23
24
# File 'lib/openx/xmlrpc_client.rb', line 22

def retry_on_http_error
  @retry_on_http_error
end

.timeoutObject

Returns the value of attribute timeout.



22
23
24
# File 'lib/openx/xmlrpc_client.rb', line 22

def timeout
  @timeout
end

Class Method Details

.init_server(uri) ⇒ Object



24
25
26
27
28
29
# File 'lib/openx/xmlrpc_client.rb', line 24

def init_server(uri)
  server = XMLRPC::Client.new2(uri)
  server.timeout = self.timeout
  #server.instance_variable_get(:@http).set_debug_output($stderr)
  server
end

.new2(uri) ⇒ Object



31
32
33
34
# File 'lib/openx/xmlrpc_client.rb', line 31

def new2(uri)
  server = init_server(uri)
  new(server, uri)
end

Instance Method Details

#call(method, *args) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/openx/xmlrpc_client.rb', line 42

def call(method, *args)
  if args.first.is_a?(OpenX::Services::Session)
    session = args.shift()
    args.unshift(session.id)
    begin
      do_call(method, *args)
    rescue XMLRPC::FaultException => sess_id_err
      if sess_id_err.message.strip == 'Session ID is invalid'
        session.recreate!
        args.shift()
        args.unshift(session.id)
        do_call(method, *args)
      else
        raise sess_id_err
      end
    end
  else
    do_call(method, *args)
  end
end