Skip to content
Snippets Groups Projects
geocoder.rb 852 B
Newer Older
require "geocoder/configuration"
require "geocoder/calculations"
require "geocoder/result"
require "geocoder/active_record"
require "geocoder/railtie"
module Geocoder
  extend self

  ##
  # Alias for Geocoder.lookup.search.
  #
  def search(*args)
    lookup.search(*args)
  end

  ##
  # Get the lookup object (which communicates with the remote geocoding API).
  #
  def lookup
    unless defined?(@lookup)
      set_lookup Geocoder::Configuration.lookup
    end
    @lookup
  end

  def set_lookup(value)
    if value == :yahoo
      require "geocoder/lookups/yahoo"
      @lookup = Geocoder::Lookup::Yahoo.new
    else
      require "geocoder/lookups/google"
      @lookup = Geocoder::Lookup::Google.new
    end

  # exception classes
  class Error < StandardError; end
  class ConfigurationError < Error; end
Geocoder::Railtie.insert