class Geocoder::Lookup::GooglePlacesDetails

Public Instance Methods

name() click to toggle source
# File lib/geocoder/lookups/google_places_details.rb, line 7
def name
  "Google Places Details"
end
required_api_key_parts() click to toggle source
# File lib/geocoder/lookups/google_places_details.rb, line 11
def required_api_key_parts
  ["key"]
end
supported_protocols() click to toggle source
# File lib/geocoder/lookups/google_places_details.rb, line 15
def supported_protocols
  [:https]
end

Private Instance Methods

base_query_url(query) click to toggle source
# File lib/geocoder/lookups/google_places_details.rb, line 21
def base_query_url(query)
  "#{protocol}://maps.googleapis.com/maps/api/place/details/json?"
end
query_url_google_params(query) click to toggle source
# File lib/geocoder/lookups/google_places_details.rb, line 42
def query_url_google_params(query)
  {
    placeid: query.text,
    language: query.language || configuration.language
  }
end
results(query) click to toggle source
# File lib/geocoder/lookups/google_places_details.rb, line 25
def results(query)
  return [] unless doc = fetch_data(query)

  case doc["status"]
  when "OK"
    return [doc["result"]]
  when "OVER_QUERY_LIMIT"
    raise_error(Geocoder::OverQueryLimitError) || Geocoder.log(:warn, "Google Places Details API error: over query limit.")
  when "REQUEST_DENIED"
    raise_error(Geocoder::RequestDenied) || Geocoder.log(:warn, "Google Places Details API error: request denied.")
  when "INVALID_REQUEST"
    raise_error(Geocoder::InvalidRequest) || Geocoder.log(:warn, "Google Places Details API error: invalid request.")
  end

  []
end