module IEX::Cloud::Connection

Private Instance Methods

connection() click to toggle source
# File lib/iex/cloud/connection.rb, line 10
def connection
  @connection ||= begin
    options = {}

    options[:headers] = {}
    options[:headers]['Accept'] = 'application/json; charset=utf-8'
    options[:headers]['Content-Type'] = 'application/json; charset=utf-8'
    options[:headers]['User-Agent'] = user_agent if user_agent
    options[:headers]['Referer'] = referer if referer
    options[:proxy] = proxy if proxy
    options[:ssl] = { ca_path: ca_path, ca_file: ca_file } if ca_path || ca_file

    request_options = {}
    request_options[:timeout] = timeout if timeout
    request_options[:open_timeout] = open_timeout if open_timeout
    request_options[:params_encoder] = Faraday::FlatParamsEncoder
    options[:request] = request_options if request_options.any?

    ::Faraday::Connection.new(endpoint, options) do |connection|
      connection.use ::Faraday::Request::Multipart
      connection.use ::Faraday::Request::UrlEncoded
      connection.use ::IEX::Cloud::Response::RaiseError
      connection.use ::FaradayMiddleware::ParseJson, content_type: /\bjson$/
      connection.response(:logger, logger.instance, logger.options, &logger.proc) if logger.instance
      connection.adapter ::Faraday.default_adapter
    end
  end
end
headers() click to toggle source
# File lib/iex/cloud/connection.rb, line 6
def headers
  {}
end