class GxG::Networking::SoapClient
Public Class Methods
new()
click to toggle source
Standard:
# File lib/gxg/net_clients.rb, line 2236 def initialize() @client = nil self end
Public Instance Methods
callmethod(*args)
click to toggle source
# File lib/gxg/net_clients.rb, line 2265 def callmethod(*args) result = nil begin if args.size == 1 the_method = args[0].to_s arguments = {} else if args.size > 1 the_method = args[0].to_s unless args[1].is_any?(::Hash, ::Array) raise ArgumentError, "You MUST provide a Hash or Array to specify parameters for this method." end arguments = args[1] else raise ArgumentError, "You MUST provide a valid SOAP method." end end if @client response_tag = (the_method.gsub(/^.+:/, "") + "Response") response = @client.invoke(the_method) do |message| if arguments.is_a?(::Hash) arguments.each_pair do |the_key, the_value| message.add(the_key.to_s, the_value) end end if arguments.is_a?(::Array) arguments.each do |the_value| message.add("literal", the_value) end end end data = ::Oga::parse_xml(response.to_xml).css(response_tag) if data found_numbers = data.text.numeric_values found_value = [] if found_numbers.is_a?(::Array) found_numbers.each do |the_subarray| if the_subarray.is_a?(::Array) if the_subarray[0].is_a?(::Hash) the_key = the_subarray[0].keys[0] found_value << the_subarray[0][(the_key)] end end end end result = {} result[(response_tag.to_sym)] = data.text # if found_value.size > 0 # if found_value.size == 1 # result[(response_tag.to_sym)] = found_value[0] # else # result[(response_tag.to_sym)] = found_value # end # else # result[(response_tag.to_sym)] = data.text # end else raise Exception, "Failed to interpret response data. Data: #{data.inspect}" end end rescue Exception => the_error log_error({:error => the_error, :parameters => {:method => the_method, :arguments => arguments}}) end result end
closed?()
click to toggle source
# File lib/gxg/net_clients.rb, line 2257 def closed?() if @client false else true end end
interface()
click to toggle source
# File lib/gxg/net_clients.rb, line 2331 def interface() if @client @client.interface end end
login(the_url=nil, options={})
click to toggle source
# File lib/gxg/net_clients.rb, line 2241 def login(the_url=nil, options={}) result = false begin @client = ::GxG::Networking::SoapDriver.new(the_url) result = true rescue Exception => the_error log_error({:error => the_error, :parameters => {:url => the_url}}) end result end
logout()
click to toggle source
# File lib/gxg/net_clients.rb, line 2252 def logout() @client = nil true end