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