in opensearch-transport/lib/opensearch/transport/client.rb [275:322]
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
if @api_key
host_parts.delete(:user)
host_parts.delete(:password)
else
@options[:http][:user] ||= host_parts[:user]
@options[:http][:password] ||= host_parts[:password]
end
host_parts[:port] = host_parts[:port].to_i if host_parts[:port]
host_parts[:path].chomp!('/') if host_parts[:path]
host_parts
end