in lib/elastic/transport/client.rb [266:306]
def parse_host(host)
host_parts = case host
when String
if host =~ /^[a-z]+\:\/\//
uri = URI::Generic.new(*URI.split(host))
default_port = uri.scheme == 'https' ? 443 : DEFAULT_PORT
{ :scheme => uri.scheme,
:user => uri.user,
:password => uri.password,
:host => uri.host,
:path => uri.path,
:port => uri.port || default_port }
else
host, port = host.split(':')
{ :host => host,
:port => port }
end
when URI
{ :scheme => host.scheme,
:user => host.user,
:password => host.password,
:host => host.host,
:path => host.path,
:port => host.port }
when Hash
host
else
raise ArgumentError, "Please pass host as a String, URI or Hash -- #{host.class} given."
end
@arguments[:http][:user] ||= host_parts[:user]
@arguments[:http][:password] ||= host_parts[:password]
host_parts[:port] = host_parts[:port].to_i if host_parts[:port]
host_parts[:path].chomp!('/') if host_parts[:path]
host_parts
end