Sha256: e2bf4b7fb4114a2e687ef6a57183d37a12fd3bb64028d91f52146a3ffaaf0b61

Contents?: true

Size: 1011 Bytes

Versions: 2

Compression:

Stored size: 1011 Bytes

Contents

require 'faraday'

module Nominatim
  class Client

    # Performs an HTTP GET request
    def get(path, params = {})
      connection.get path, params
    end

    private

    # Returns a Faraday::Connection object
    #
    # @return [Faraday::Connection]
    def connection
      return @connection if defined? @connection

      options = {
        request: {
          timeout: Nominatim.config.timeout
        }
      }

      @connection = Faraday.new Nominatim.config.endpoint, options do |builder|
        builder.use Nominatim::Response::ParseJson
        builder.adapter Faraday.default_adapter
      end

      @connection.params[:format] = 'json'
      @connection.params[:email] = Nominatim.config.email if Nominatim.config.email
      @connection.params[:key] = Nominatim.config.key if Nominatim.config.key

      @connection.headers[:user_agent] = Nominatim.config.user_agent
      @connection.headers[:"accept-language"] = Nominatim.config.accept_language

      @connection
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
nominatim-0.0.6 lib/nominatim/client.rb
ruby-nominatim-1.0.0 lib/nominatim/client.rb