class Geocoder::Lookup::GooglePlacesSearch

Public Instance Methods

name() click to toggle source
# File lib/geocoder/lookups/google_places_search.rb, line 7
def name
  "Google Places Search"
end
required_api_key_parts() click to toggle source
# File lib/geocoder/lookups/google_places_search.rb, line 11
def required_api_key_parts
  ["key"]
end
supported_protocols() click to toggle source
# File lib/geocoder/lookups/google_places_search.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_search.rb, line 25
def base_query_url(query)
  "#{protocol}://maps.googleapis.com/maps/api/place/findplacefromtext/json?"
end
default_fields() click to toggle source
# File lib/geocoder/lookups/google_places_search.rb, line 51
def default_fields
  basic = %w[business_status formatted_address geometry icon name 
    photos place_id plus_code types]
  contact = %w[opening_hours]
  atmosphere = %W[price_level rating user_ratings_total]
  format_fields(basic, contact, atmosphere)
end
fields(query) click to toggle source
# File lib/geocoder/lookups/google_places_search.rb, line 39
def fields(query)
  if query.options.has_key?(:fields)
    return format_fields(query.options[:fields])
  end

  if configuration.has_key?(:fields)
    return format_fields(configuration[:fields])
  end

  default_fields
end
format_fields(*fields) click to toggle source
# File lib/geocoder/lookups/google_places_search.rb, line 59
def format_fields(*fields)
  flattened = fields.flatten.compact
  return if flattened.empty?

  flattened.join(',')
end
locationbias(query) click to toggle source
# File lib/geocoder/lookups/google_places_search.rb, line 66
def locationbias(query)
  if query.options.has_key?(:locationbias)
    query.options[:locationbias]
  else
    configuration[:locationbias]
  end
end
query_url_google_params(query) click to toggle source
# File lib/geocoder/lookups/google_places_search.rb, line 29
def query_url_google_params(query)
  {
    input: query.text,
    inputtype: 'textquery',
    fields: fields(query),
    locationbias: locationbias(query),
    language: query.language || configuration.language
  }
end
result_root_attr() click to toggle source
# File lib/geocoder/lookups/google_places_search.rb, line 21
def result_root_attr
  'candidates'
end