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:



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

def self.begin
  yield self
end

.default_for_listObject



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

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

.default_for_list=(*list) ⇒ Object



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

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

.geonames_protocolString

The Geonames API HTTP protocol

Returns:

  • (String)

    the Geonames API HTTP protocol (‘http’)



105
106
107
# File 'lib/timezone/configure.rb', line 105

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



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

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

.geonames_urlString

The Geonames API URL

Returns:

  • (String)

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



53
54
55
# File 'lib/timezone/configure.rb', line 53

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



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

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

.google_api_keyString

The Google API key

Returns:

  • (String)

    the Google API key (‘abc123’)



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

def self.google_api_key
  @google_api_key
end

.google_api_key=(api_key) ⇒ Object

Google API key

Parameters:

  • api_key (String)

    the Google API key



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

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

.google_protocolString

The Google API HTTP protocol

Returns:

  • (String)

    the Google API HTTP protocol (‘https’)



121
122
123
# File 'lib/timezone/configure.rb', line 121

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



113
114
115
# File 'lib/timezone/configure.rb', line 113

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

.google_urlString

The Google API URL

Returns:

  • (String)

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



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

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



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

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

.http_clientObject

The HTTP client that handles requests to Geonames and Google

Returns:



137
138
139
# File 'lib/timezone/configure.rb', line 137

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



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

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

.order_list_byObject



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

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

.order_list_by=(order) ⇒ Object



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

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



129
130
131
# File 'lib/timezone/configure.rb', line 129

def self.protocol
  use_google? ? google_protocol : geonames_protocol
end

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



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

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

.replacementsObject



175
176
177
# File 'lib/timezone/configure.rb', line 175

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



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

def self.url
  use_google? ? google_url : geonames_url
end

.use_google?Boolean

Use Google API if key has been set

Returns:

  • (Boolean)


45
46
47
# File 'lib/timezone/configure.rb', line 45

def self.use_google?
  !!google_api_key
end

.usernameString

The Geonames API username

Returns:

  • (String)

    the Geonames API username (‘foo-bar’)



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

def self.username
  @@username
end

.username=(username) ⇒ Object

The Geonames API username

Parameters:

  • username (String)

    the Geonames API username



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

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