lib/loopiator/client.rb in loopiator-0.3.5 vs lib/loopiator/client.rb in loopiator-0.3.6

- old
+ new

@@ -5,19 +5,18 @@ class Client attr_accessor :client include Loopiator::Logger - def initialize(connection_options = {}, debug = false) - set_client(connection_options, debug: debug) + def initialize(connection_options = {}) + connection_options.symbolize_keys! + set_client(connection_options) end - def set_client(connection_options = {}, debug = false) - connection_options = generate_connection_options(connection_options) - - self.client = XMLRPC::Client.new_from_hash(connection_options) - enable_debugging if debug + def set_client(connection_options = {}) + self.client = XMLRPC::Client.new_from_hash(generate_connection_options(connection_options)) + enable_debugging if Loopiator.configuration.debug set_client_options(connection_options) end def call(rpc_method, *args) response = nil @@ -51,11 +50,11 @@ include Loopiator::Credits private def generate_connection_options(connection_options = {}) default_options = { - host: Loopiator.configuration.host, + host: determine_host(connection_options), path: Loopiator.configuration.path, port: Loopiator.configuration.port, user: Loopiator.configuration.auth_user, password: Loopiator.configuration.auth_password, @@ -68,9 +67,14 @@ proxy_user: Loopiator.configuration.proxy_user, proxy_password: Loopiator.configuration.proxy_password, } default_options.merge(connection_options) + end + + def determine_host(connection_options = {}) + env = (connection_options && !connection_options.empty?) ? connection_options.fetch(:environment, Loopiator.configuration.environment) : Loopiator.configuration.environment + Loopiator.configuration.hosts[env.to_sym] end def enable_debugging self.client.instance_variable_get(:@http).set_debug_output($stderr) end \ No newline at end of file