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:



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

def self.begin
  yield self
end

.default_for_listObject



221
222
223
# File 'lib/timezone/configure.rb', line 221

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

.default_for_list=(*list) ⇒ Object



225
226
227
# File 'lib/timezone/configure.rb', line 225

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

.geonames_lookupObject



87
88
89
# File 'lib/timezone/configure.rb', line 87

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

.geonames_protocolString

The Geonames API HTTP protocol

Returns:

  • (String)

    the Geonames API HTTP protocol (‘http’)



147
148
149
# File 'lib/timezone/configure.rb', line 147

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

.geonames_protocol=(protocol) ⇒ Object

The Geonames API HTTP protocol

Parameters:

  • protocol (String)

    the Geonames API HTTP procotol



139
140
141
# File 'lib/timezone/configure.rb', line 139

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

.geonames_urlString

The Geonames API URL

Returns:

  • (String)

    the Geonames API URL (‘api.geonames.org’)



95
96
97
# File 'lib/timezone/configure.rb', line 95

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

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

The Geonames API URL

Parameters:

  • url (String)

    the Geonames API URL



103
104
105
# File 'lib/timezone/configure.rb', line 103

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

.google_api_keyString

The Google API key

Returns:

  • (String)

    the Google API key (‘abc123’)



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

Parameters:

  • api_key (String)

    the 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)

Returns:

  • (String)

    the Google Client (‘abc123’)



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)

Parameters:

  • client (String)

    the Google Client



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

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

.google_lookupObject



83
84
85
# File 'lib/timezone/configure.rb', line 83

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

.google_protocolString

The Google API HTTP protocol

Returns:

  • (String)

    the Google API HTTP protocol (‘https’)



163
164
165
# File 'lib/timezone/configure.rb', line 163

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

.google_protocol=(protocol) ⇒ Object

The Google API HTTP protocol

Parameters:

  • protocol (String)

    the Google API HTTP procotol



155
156
157
# File 'lib/timezone/configure.rb', line 155

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

.google_urlString

The Google API URL

Returns:

  • (String)

    the Google API URL (‘maps.googleapis.com’)



115
116
117
# File 'lib/timezone/configure.rb', line 115

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

.google_url=(url) ⇒ Object

The Google API URL

Parameters:

  • url (String)

    the Google API URL



123
124
125
# File 'lib/timezone/configure.rb', line 123

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

.http_clientObject

The HTTP client that handles requests to Geonames and Google

Returns:



179
180
181
# File 'lib/timezone/configure.rb', line 179

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

.http_client=(client) ⇒ Object

The HTTP client that handles requests to Geonames and Google

Parameters:

  • client (Object)

    the HTTP client that handles requests to Geonames and Google



188
189
190
# File 'lib/timezone/configure.rb', line 188

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

.lookupObject



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

def self.lookup
  return @lookup if @lookup

  use_google? ? google_lookup : geonames_lookup
end

.lookup=(lookup) ⇒ Object



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

def self.lookup=(lookup)
  @lookup = lookup && lookup.new(self)
end

.order_list_byObject



229
230
231
# File 'lib/timezone/configure.rb', line 229

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

.order_list_by=(order) ⇒ Object



233
234
235
# File 'lib/timezone/configure.rb', line 233

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

.protocolString

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

Returns:

  • (String)

    the Google or Geonames API protocol



171
172
173
# File 'lib/timezone/configure.rb', line 171

def self.protocol
  use_google? ? google_protocol : geonames_protocol
end

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



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

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

.replacementsObject



217
218
219
# File 'lib/timezone/configure.rb', line 217

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

.urlString

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

Returns:

  • (String)

    the Google or Geonames API URL



131
132
133
# File 'lib/timezone/configure.rb', line 131

def self.url
  use_google? ? google_url : geonames_url
end

.use_google?Boolean

Use Google API if key has been set

Returns:

  • (Boolean)


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)

Returns:

  • (Boolean)


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

Returns:

  • (String)

    the Geonames API username (‘foo-bar’)



196
197
198
# File 'lib/timezone/configure.rb', line 196

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

.username=(username) ⇒ Object

The Geonames API username

Parameters:

  • username (String)

    the Geonames API username



204
205
206
# File 'lib/timezone/configure.rb', line 204

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