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

Returns:

  • (String)

    the Geonames API HTTP protocol (‘http’)



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

Parameters:

  • protocol (String)

    the Geonames API HTTP procotol



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

Returns:

  • (String)

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



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

Parameters:

  • url (String)

    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

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



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

Returns:

  • (String)

    the Google API HTTP protocol (‘https’)



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

Parameters:

  • protocol (String)

    the Google API HTTP procotol



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

Returns:

  • (String)

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



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

Parameters:

  • url (String)

    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

Returns:



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

Parameters:

  • 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

Returns:

  • (String)

    the Google or Geonames API 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

Returns:

  • (String)

    the Google or Geonames API 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

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



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

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

.username=(username) ⇒ Object

The Geonames API username

Parameters:

  • username (String)

    the Geonames API username



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

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