Class: Timezone::Configure

Inherits:
Object
  • Object
show all
Defined in:
lib/timezone/configure.rb

Overview

Configuration class for the Timezone gem.

You’ll want to sign up for a geonames username at Geonames. Use the username to configure your application for latitude and longitude based timezone searches. Alternatively, you’ll want to sign up for a Google api key at / Google. Use the api key to configure your application for latitude and longitude based timezone searches.

If you aren’t going to initialize timezone objects based on lat,lng then this configuration is not necessary.

Examples:

Timezone::Configure.begin do |c|
  c.geonames_url = 'api.geonames.org'
  c.username = 'foo-bar'
  c.google_api_key = 'abc123'
end

Class Method Summary collapse

Class Method Details

.begin {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



202
203
204
# File 'lib/timezone/configure.rb', line 202

def self.begin
  yield self
end

.default_for_listObject



215
216
217
# File 'lib/timezone/configure.rb', line 215

def self.default_for_list
  @@default_list ||= nil
end

.default_for_list=(*list) ⇒ Object



219
220
221
# File 'lib/timezone/configure.rb', line 219

def self.default_for_list=(*list)
  @@default_list = list.flatten!
end

.geonames_lookupObject



81
82
83
# File 'lib/timezone/configure.rb', line 81

def self.geonames_lookup
  @geonames_lookup ||= Timezone::Lookup::Geonames.new(self)
end

.geonames_protocolString

The Geonames API HTTP protocol



141
142
143
# File 'lib/timezone/configure.rb', line 141

def self.geonames_protocol
  @@geonames_protocol ||= 'http'
end

.geonames_protocol=(protocol) ⇒ Object

The Geonames API HTTP protocol



133
134
135
# File 'lib/timezone/configure.rb', line 133

def self.geonames_protocol=(protocol)
  @@geonames_protocol = protocol
end

.geonames_urlString

The Geonames API URL



89
90
91
# File 'lib/timezone/configure.rb', line 89

def self.geonames_url
  @@geonames_url ||= 'api.geonames.org'
end

.geonames_url=(url) ⇒ Object Also known as: url=

The Geonames API URL



97
98
99
# File 'lib/timezone/configure.rb', line 97

def self.geonames_url=(url)
  @@geonames_url = url
end

.google_api_keyString

The Google API key



31
32
33
# File 'lib/timezone/configure.rb', line 31

def self.google_api_key
  @google_api_key ||= nil
end

.google_api_key=(api_key) ⇒ Object

Google API key



39
40
41
# File 'lib/timezone/configure.rb', line 39

def self.google_api_key=(api_key)
  @google_api_key = api_key
end

.google_client_idString

The Google Client ID (for enterprise)



47
48
49
# File 'lib/timezone/configure.rb', line 47

def self.google_client_id
  @google_client_id ||= nil
end

.google_client_id=(client) ⇒ Object

Google Client ID (for enterprise)



55
56
57
# File 'lib/timezone/configure.rb', line 55

def self.google_client_id=(client)
  @google_client_id = client
end

.google_lookupObject



77
78
79
# File 'lib/timezone/configure.rb', line 77

def self.google_lookup
  @google_lookup ||= Timezone::Lookup::Google.new(self)
end

.google_protocolString

The Google API HTTP protocol



157
158
159
# File 'lib/timezone/configure.rb', line 157

def self.google_protocol
  @@google_protocol ||= 'https'
end

.google_protocol=(protocol) ⇒ Object

The Google API HTTP protocol



149
150
151
# File 'lib/timezone/configure.rb', line 149

def self.google_protocol=(protocol)
  @@google_protocol = protocol
end

.google_urlString

The Google API URL



109
110
111
# File 'lib/timezone/configure.rb', line 109

def self.google_url
  @@google_url ||= 'maps.googleapis.com'
end

.google_url=(url) ⇒ Object

The Google API URL



117
118
119
# File 'lib/timezone/configure.rb', line 117

def self.google_url=(url)
  @@google_url = url
end

.http_clientObject

The HTTP client that handles requests to Geonames and Google



173
174
175
# File 'lib/timezone/configure.rb', line 173

def self.http_client
  @@http_client ||= Timezone::NetHTTPClient
end

.http_client=(client) ⇒ Object

The HTTP client that handles requests to Geonames and Google



182
183
184
# File 'lib/timezone/configure.rb', line 182

def self.http_client=(client)
  @@http_client = client
end

.lookupObject



73
74
75
# File 'lib/timezone/configure.rb', line 73

def self.lookup
  use_google? ? google_lookup : geonames_lookup
end

.order_list_byObject



223
224
225
# File 'lib/timezone/configure.rb', line 223

def self.order_list_by
  @@order_by ||= :utc_offset
end

.order_list_by=(order) ⇒ Object



227
228
229
# File 'lib/timezone/configure.rb', line 227

def self.order_list_by=(order)
  @@order_by = order
end

.protocolString

Use Google protocol if key has been set else use Geonames protocol



165
166
167
# File 'lib/timezone/configure.rb', line 165

def self.protocol
  use_google? ? google_protocol : geonames_protocol
end

.replace(what, with = Hash.new) ⇒ Object



206
207
208
209
# File 'lib/timezone/configure.rb', line 206

def self.replace(what, with = Hash.new)
  replacements # instantiate @@replacements
  @@replacements[what] = with[:with]
end

.replacementsObject



211
212
213
# File 'lib/timezone/configure.rb', line 211

def self.replacements
  @@replacements ||= {}
end

.urlString

Use Google URL if key has been set else use Geonames URL



125
126
127
# File 'lib/timezone/configure.rb', line 125

def self.url
  use_google? ? google_url : geonames_url
end

.use_google?Boolean

Use Google API if key has been set



62
63
64
# File 'lib/timezone/configure.rb', line 62

def self.use_google?
  !!google_api_key
end

.use_google_enterprise?Boolean

Sign Google API request if client given (for enterprise)



69
70
71
# File 'lib/timezone/configure.rb', line 69

def self.use_google_enterprise?
  use_google? && !!google_client_id
end

.usernameString

The Geonames API username



190
191
192
# File 'lib/timezone/configure.rb', line 190

def self.username
  @@username ||= nil
end

.username=(username) ⇒ Object

The Geonames API username



198
199
200
# File 'lib/timezone/configure.rb', line 198

def self.username=(username)
  @@username = username
end