Class: Geocoder::Configuration

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/geocoder/configuration.rb

Overview

This class handles geocoder Geocoder configuration (geocoding service provider, caching, units of measurement, etc). Configuration can be done in two ways:

1) Using Geocoder.configure and passing a block

 (useful for configuring multiple things at once):

Geocoder.configure do |config|
  config.timeout      = 5
  config.lookup       = :yahoo
  config.api_key      = "2a9fsa983jaslfj982fjasd"
  config.units        = :km
end

2) Using the Geocoder::Configuration singleton directly:

Geocoder::Configuration.language = 'pt-BR'

Default values are defined in Configuration#set_defaults.

Constant Summary collapse

OPTIONS =
[
  :timeout,
  :lookup,
  :ip_lookup,
  :language,
  :http_headers,
  :use_https,
  :http_proxy,
  :https_proxy,
  :api_key,
  :cache,
  :cache_prefix,
  :always_raise,
  :units,
  :distances
]

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

:nodoc



59
60
61
# File 'lib/geocoder/configuration.rb', line 59

def initialize # :nodoc
  set_defaults
end

Class Method Details

.set_defaultsObject



100
101
102
# File 'lib/geocoder/configuration.rb', line 100

def set_defaults
  instance.set_defaults
end

Instance Method Details

#set_defaultsObject



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/geocoder/configuration.rb', line 63

def set_defaults
  @timeout      = 3           # geocoding service timeout (secs)
  @lookup       = :google     # name of street address geocoding service (symbol)
  @ip_lookup    = :freegeoip  # name of IP address geocoding service (symbol)
  @language     = :en         # ISO-639 language code
  @http_headers = {}          # HTTP headers for lookup
  @use_https    = false       # use HTTPS for lookup requests? (if supported)
  @http_proxy   = nil         # HTTP proxy server (user:pass@host:port)
  @https_proxy  = nil         # HTTPS proxy server (user:pass@host:port)
  @api_key      = nil         # API key for geocoding service
  @cache        = nil         # cache object (must respond to #[], #[]=, and #keys)
  @cache_prefix = "geocoder:" # prefix (string) to use for all cache keys

  # exceptions that should not be rescued by default
  # (if you want to implement custom error handling);
  # supports SocketError and TimeoutError
  @always_raise = []

  # calculation options
  @units     = :mi     # :mi or :km
  @distances = :linear # :linear or :spherical
end