Sha256: b6b210aae296095c0db1c5389a3ba78827c18f019da20c4f7d1ba3a7fafa5e82
Contents?: true
Size: 1.74 KB
Versions: 3
Compression:
Stored size: 1.74 KB
Contents
require "geocoder/lookups/google" require "geocoder/results/google_places_search" module Geocoder module Lookup class GooglePlacesSearch < Google def name "Google Places Search" end def required_api_key_parts ["key"] end def supported_protocols [:https] end private def result_root_attr 'candidates' end def base_query_url(query) "#{protocol}://maps.googleapis.com/maps/api/place/findplacefromtext/json?" end def query_url_google_params(query) { input: query.text, inputtype: 'textquery', fields: fields(query), locationbias: locationbias(query), language: query.language || configuration.language } end 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 def default_fields legacy = %w[id reference] 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(legacy, basic, contact, atmosphere) end def format_fields(*fields) flattened = fields.flatten.compact return if flattened.empty? flattened.join(',') end def locationbias(query) if query.options.has_key?(:locationbias) query.options[:locationbias] else configuration[:locationbias] end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
geocoder-1.8.2 | lib/geocoder/lookups/google_places_search.rb |
geocoder-1.8.1 | lib/geocoder/lookups/google_places_search.rb |
geocoder-1.8.0 | lib/geocoder/lookups/google_places_search.rb |