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_connections() click to toggle source

Builds and returns a collection of connections.

@return [Connections::Collection]

# File lib/elasticsearch/transport/transport/http/faraday.rb, line 34
def __build_connections
  Connections::Collection.new                :connections => hosts.map { |host|
      host[:protocol]   = host[:scheme] || DEFAULT_PROTOCOL
      host[:port]     ||= DEFAULT_PORT
      url               = __full_url(host)

      Connections::Connection.new                    :host => host,
        :connection => ::Faraday::Connection.new(url, (options[:transport_options] || {}), &@block )
    },
    :selector_class => options[:selector_class],
    :selector => options[:selector]
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 53
def host_unreachable_exceptions
  [::Faraday::Error::ConnectionFailed, ::Faraday::Error::TimeoutError]
end
perform_request(method, path, params={}, body=nil) click to toggle source

Performs the request by invoking {Transport::Base#perform_request} with a block.

@return [Response] @see Elasticsearch::Transport::Transport::Base#perform_request

# File lib/elasticsearch/transport/transport/http/faraday.rb, line 19
def perform_request(method, path, params={}, body=nil)
  super do |connection, url|
    response = connection.connection.run_request                  method.downcase.to_sym,
      url,
      ( body ? __convert_to_json(body) : nil ),
      {}
    Response.new response.status, response.body, response.headers
  end
end