class Twofishes::Client

Public Class Methods

geocode(location, options = {}) click to toggle source

Geocodes a given string.

@param [String] location @param [Array] list of additional ResponseIncludes constants @return [Twofishes::Result]

@example

Twofishes::Client.geocode('Zurich, Switzerland')
# File lib/twofishes/client.rb, line 15
def self.geocode(location, options = {})
  handle_response do
    options[:query] = location
    request = Twofishes::GeocodeRequest.new(options)
    thrift_client.geocode(request)
  end
end
handle_response() { || ... } click to toggle source
# File lib/twofishes/client.rb, line 48
def self.handle_response
  Result.from_response(yield)
rescue => e
  raise Twofishes::InvalidResponseError, e.message
end
reverse_geocode(coordinates, options = {}) click to toggle source

Reverse geocodes lat/lng.

@param [Array] latitude, longitude pair @return [Twofishes::Result] @example

Twofishes::Client.reverse_geocode([47.3787733, 8.5273363])
# File lib/twofishes/client.rb, line 30
def self.reverse_geocode(coordinates, options = {})
  handle_response do
    options[:ll] = coordinates
    request = Twofishes::GeocodeRequest.new(options)
    thrift_client.reverseGeocode(request)
  end
end
thrift_client() click to toggle source
# File lib/twofishes/client.rb, line 38
def self.thrift_client
  ThriftClient.new(
    Geocoder::Client,
    Twofishes.configuration.address,
    retries: Twofishes.configuration.retries,
    timeout: Twofishes.configuration.timeout,
    connect_timeout: Twofishes.configuration.connect_timeout
  )
end