class Confluence::RPC

Attributes

log[R]

Public Class Methods

new(server_url, proxy = "confluence1") click to toggle source
# File lib/confluence/rpc.rb, line 20
def initialize(server_url, proxy = "confluence1")
  server_url += "/rpc/xmlrpc" unless server_url[-11..-1] == "/rpc/xmlrpc"
  @server_url = server_url
  server = XMLRPC::Client.new2(server_url)
  @conf = server.proxy(proxy)
  @token = "12345"
  
  @log = Logger.new(STDERR)# "#{RAILS_ROOT}/log/confluence4r.log"
end

Public Instance Methods

login(username, password) click to toggle source
# File lib/confluence/rpc.rb, line 30
def login(username, password)
  log.info "Logging in as '#{username}'."
  @user = username
  @pass = password
  do_login()
end
method_missing(method_name, *args) click to toggle source
# File lib/confluence/rpc.rb, line 37
def method_missing(method_name, *args)
  log.info "Calling #{method_name}(#{args.inspect})."
  begin
    @conf.send(method_name, *([@token] + args))
  rescue XMLRPC::FaultException => e
    log.error "#{e}: #{e.message}"
    if (e.faultString.include?("InvalidSessionException"))
      do_login
      retry
    else
      raise RemoteException, e.respond_to?(:message) ? e.message : e
    end
  rescue
    log.error "#{$!}"
    raise $!
  end
end

Private Instance Methods

do_login() click to toggle source
# File lib/confluence/rpc.rb, line 57
def do_login()
  begin
    @token = @conf.login(@user, @pass)
  rescue XMLRPC::FaultException => e
    log.error "#{e}: #{e.faultString}"
    raise RemoteAuthenticationException, e
  end
end