class Elasticsearch::Transport::Transport::HTTP::Faraday
The default transport implementation, using the [Faraday](rubygems.org/gems/faraday) library for abstracting the HTTP
client.
@see Transport::Base
Public Instance Methods
__build_connection(host, options={}, block=nil)
click to toggle source
Builds and returns a connection
@return [Connections::Connection]
# File lib/elasticsearch/transport/transport/http/faraday.rb, line 62 def __build_connection(host, options={}, block=nil) client = ::Faraday.new(__full_url(host), options, &block) apply_headers(client, options) Connections::Connection.new :host => host, :connection => client end
host_unreachable_exceptions()
click to toggle source
Returns an array of implementation specific connection errors.
@return [Array]
# File lib/elasticsearch/transport/transport/http/faraday.rb, line 72 def host_unreachable_exceptions [::Faraday::ConnectionFailed, ::Faraday::TimeoutError] end
perform_request(method, path, params = {}, body = nil, headers = nil, opts = {})
click to toggle source
Performs the request by invoking {Transport::Base#perform_request} with a block.
@return [Response] @see Transport::Base#perform_request
Calls superclass method
Elasticsearch::Transport::Transport::Base#perform_request
# File lib/elasticsearch/transport/transport/http/faraday.rb, line 35 def perform_request(method, path, params = {}, body = nil, headers = nil, opts = {}) super do |connection, url| headers = if connection.connection.headers if !headers.nil? connection.connection.headers.merge(headers) else connection.connection.headers end else headers end response = connection.connection.run_request( method.downcase.to_sym, url, (body ? __convert_to_json(body) : nil), headers ) Response.new response.status, decompress_response(response.body), response.headers end end
Private Instance Methods
user_agent_header(client)
click to toggle source
# File lib/elasticsearch/transport/transport/http/faraday.rb, line 78 def user_agent_header(client) @user_agent ||= begin meta = ["RUBY_VERSION: #{RUBY_VERSION}"] if RbConfig::CONFIG && RbConfig::CONFIG['host_os'] meta << "#{RbConfig::CONFIG['host_os'].split('_').first[/[a-z]+/i].downcase} #{RbConfig::CONFIG['target_cpu']}" end meta << "#{client.headers[USER_AGENT_STR]}" "elasticsearch-ruby/#{VERSION} (#{meta.join('; ')})" end end