Sha256: bac46cd5ee5ae53c770c3f3a628ac0c01edf76408c3fb606d94d6b1808e53033

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

# encoding: utf-8
class MagicAddresses::GeoCoder
  
  def self.search( q = "", language = "de" )
    if q.present?
      log "GeoCode (#{language}):   #{q}"
      attempts = 0
      begin
        search_via_google
        results = Geocoder.search( q, language: language )
        log " - google:   [#{results.count}]"
        return results
      rescue Exception => e
        log "! Google-Error:   #{e} !"
        sleep 0.3
        attempts += 1
      end while attempts < 3
      unless results
        search_via_nominatim
        results = Geocoder.search( q, language: language )
        log " - nominatim:   [#{results.count}]"
      end
    else
      results = []
    end
    return results
  end
  
  
  def self.search_via_google
    Geocoder.configure( :lookup => :google )
  end
  
  def self.search_via_nominatim
    Geocoder.configure( :lookup => :nominatim )
  end
  
  def self.log( stuff = " " )
    if Rails.env.test?
      puts "#: #{stuff}"
    elsif !Rails.env.production?
      Rails.logger.info "###   #{stuff}"
    end
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
magic_addresses-0.0.44 lib/app/models/magic_addresses/geo_coder.rb
magic_addresses-0.0.43 lib/app/models/magic_addresses/geo_coder.rb