Sha256: 2fb96ee082c3141ab94a9efd73d2ea6716036e3e57164a8a1a0197f450e5ad6d

Contents?: true

Size: 1.38 KB

Versions: 12

Compression:

Stored size: 1.38 KB

Contents

require 'geocoder/lookups/base'
require 'geocoder/results/here'

module Geocoder::Lookup
  class Here < Base

    def name
      "Here"
    end

    def required_api_key_parts
      []
    end

    def query_url(query)
      "#{protocol}://#{if query.reverse_geocode? then 'reverse.' end}geocoder.api.here.com/6.2/#{if query.reverse_geocode? then 'reverse' end}geocode.json?" + url_query_string(query)
    end

    private # ---------------------------------------------------------------

    def results(query)
      return [] unless doc = fetch_data(query)
      return [] unless doc['Response'] && doc['Response']['View']
      if r=doc['Response']['View']
        return [] if r.nil? || !r.is_a?(Array) || r.empty?
        return r.first['Result']
      end
      []
    end

    def query_url_params(query)
      options = {
        :gen=>4,
        :app_id=>api_key,
        :app_code=>api_code
      }

      if query.reverse_geocode?
        super.merge(options).merge(
          :prox=>query.sanitized_text,
          :mode=>:retrieveAddresses
        )
      else
        super.merge(options).merge(
          :searchtext=>query.sanitized_text
        )
      end
    end

    def api_key
      if a=configuration.api_key
        return a.first if a.is_a?(Array)
      end
    end

    def api_code
      if a=configuration.api_key
        return a.last if a.is_a?(Array)
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 3 rubygems

Version Path
geocoder-1.2.8 lib/geocoder/lookups/here.rb
geocoder-1.2.7 lib/geocoder/lookups/here.rb
geocoder-kb-1.2.6 lib/geocoder/lookups/here.rb
geocoder-1.2.6 lib/geocoder/lookups/here.rb
bw-geocoder-1.2.6 lib/geocoder/lookups/here.rb
bw-geocoder-1.2.5 lib/geocoder/lookups/here.rb
geocoder-1.2.5 lib/geocoder/lookups/here.rb
geocoder-1.2.4 lib/geocoder/lookups/here.rb
geocoder-1.2.3 lib/geocoder/lookups/here.rb
geocoder-1.2.2 lib/geocoder/lookups/here.rb
geocoder-1.2.1 lib/geocoder/lookups/here.rb
geocoder-1.2.0 lib/geocoder/lookups/here.rb