Class: Geocoder::Configuration

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

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,
  :basic_auth,
  :logger,
  :kernel_logger_level
]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

:nodoc



83
84
85
86
# File 'lib/geocoder/configuration.rb', line 83

def initialize # :nodoc
  @data = Geocoder::ConfigurationHash.new
  set_defaults
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



64
65
66
# File 'lib/geocoder/configuration.rb', line 64

def data
  @data
end

Class Method Details

.set_defaultsObject



66
67
68
# File 'lib/geocoder/configuration.rb', line 66

def self.set_defaults
  instance.set_defaults
end

Instance Method Details

#configure(options) ⇒ Object



79
80
81
# File 'lib/geocoder/configuration.rb', line 79

def configure(options)
  @data.rmerge!(options)
end

#set_defaultsObject



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/geocoder/configuration.rb', line 88

def set_defaults

  # geocoding options
  @data[:timeout]      = 3           # geocoding service timeout (secs)
  @data[:lookup]       = :google     # name of street address geocoding service (symbol)
  @data[:ip_lookup]    = :freegeoip  # name of IP address geocoding service (symbol)
  @data[:language]     = :en         # ISO-639 language code
  @data[:http_headers] = {}          # HTTP headers for lookup
  @data[:use_https]    = false       # use HTTPS for lookup requests? (if supported)
  @data[:http_proxy]   = nil         # HTTP proxy server (user:pass@host:port)
  @data[:https_proxy]  = nil         # HTTPS proxy server (user:pass@host:port)
  @data[:api_key]      = nil         # API key for geocoding service
  @data[:cache]        = nil         # cache object (must respond to #[], #[]=, and #keys)
  @data[:cache_prefix] = "geocoder:" # prefix (string) to use for all cache keys
  @data[:basic_auth]   = {}          # user and password for basic auth ({:user => "user", :password => "password"})
  @data[:logger]       = :kernel     # :kernel or Logger instance
  @data[:kernel_logger_level] = ::Logger::WARN # log level, if kernel logger is used

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

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