geonames 0.2.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +6 -0
- data/.rspec +2 -0
- data/Gemfile +7 -0
- data/README.markdown +82 -0
- data/Rakefile +13 -0
- data/init.rb +1 -0
- data/lib/geonames.rb +38 -22
- data/lib/geonames/bounding_box.rb +12 -0
- data/lib/{country_subdivision.rb → geonames/config.rb} +26 -13
- data/lib/geonames/country_info.rb +18 -0
- data/lib/{Rakefile.rb → geonames/country_subdivision.rb} +11 -6
- data/lib/geonames/intersection.rb +28 -0
- data/lib/{toponym_search_result.rb → geonames/postal_code.rb} +10 -16
- data/lib/geonames/postal_code_search_criteria.rb +50 -0
- data/lib/{timezone.rb → geonames/timezone.rb} +10 -11
- data/lib/geonames/toponym.rb +29 -0
- data/lib/geonames/toponym_search_criteria.rb +34 -0
- data/lib/{address.rb → geonames/toponym_search_result.rb} +10 -7
- data/lib/geonames/version.rb +3 -0
- data/lib/geonames/web_service.rb +467 -0
- data/lib/{wikipedia_article.rb → geonames/wikipedia_article.rb} +5 -20
- data/ruby-geonames.gemspec +24 -0
- data/spec/fixtures/country_info/thailand.xml.http +29 -0
- data/spec/fixtures/country_subdivision/ontario.xml.http +20 -0
- data/spec/fixtures/countrycode/canada.xml.http +16 -0
- data/spec/fixtures/find_nearby/marchtrenk.xml.http +37 -0
- data/spec/fixtures/find_nearby/wilkinson.xml.http +23 -0
- data/spec/fixtures/find_nearby_place_name/oshawa.xml.http +23 -0
- data/spec/fixtures/find_nearby_postal_codes/oshawa.xml.http +81 -0
- data/spec/fixtures/find_nearby_wikipedia/general_motors_centre.xml.http +81 -0
- data/spec/fixtures/find_nearest_intersection/park_ave_and_e_51st_st.xml.http +24 -0
- data/spec/fixtures/hierarchy/zurich.xml.http +87 -0
- data/spec/fixtures/postal_code_search/lat_lng.xml.http +81 -0
- data/spec/fixtures/postal_code_search/oshawa.xml.http +77 -0
- data/spec/fixtures/search/austria.xml.http +146 -0
- data/spec/fixtures/search/marchtrenk.xml.http +93 -0
- data/spec/fixtures/search/upper_austria.xml.http +48 -0
- data/spec/fixtures/timezone/america_toronto.xml.http +24 -0
- data/spec/fixtures/wikipedia_bounding_box/wyoming.xml.http +154 -0
- data/spec/geonames/postal_code_search_criteria_spec.rb +31 -0
- data/spec/geonames/web_service/country_code_spec.rb +24 -0
- data/spec/geonames/web_service/country_info_spec.rb +42 -0
- data/spec/geonames/web_service/country_subdivision_spec.rb +24 -0
- data/spec/geonames/web_service/find_bounding_box_wikipedia_spec.rb +28 -0
- data/spec/geonames/web_service/find_nearby_place_name_spec.rb +24 -0
- data/spec/geonames/web_service/find_nearby_postal_codes_spec.rb +29 -0
- data/spec/geonames/web_service/find_nearby_spec.rb +41 -0
- data/spec/geonames/web_service/find_nearby_wikipedia_spec.rb +26 -0
- data/spec/geonames/web_service/find_nearest_intersection_spec.rb +18 -0
- data/spec/geonames/web_service/hierarchy_spec.rb +23 -0
- data/spec/geonames/web_service/postal_code_search_spec.rb +49 -0
- data/spec/geonames/web_service/search_spec.rb +54 -0
- data/spec/geonames/web_service/timezone_spec.rb +22 -0
- data/spec/geonames/web_service_spec.rb +13 -0
- data/spec/spec_helper.rb +13 -0
- data/spec/support/fakeweb.rb +9 -0
- metadata +152 -61
- data/README +0 -0
- data/geonames-0.2.2.gem +0 -0
- data/geonames.gemspec +0 -18
- data/lib/intersection.rb +0 -42
- data/lib/main.rb +0 -63
- data/lib/postal_code.rb +0 -40
- data/lib/postal_code_search_criteria.rb +0 -84
- data/lib/toponym.rb +0 -45
- data/lib/toponym_search_criteria.rb +0 -44
- data/lib/web_service.rb +0 -493
- data/nbproject/private/private.properties +0 -0
- data/nbproject/private/private.xml +0 -4
- data/nbproject/project.properties +0 -3
- data/nbproject/project.xml +0 -15
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
# Geonames Ruby API [](https://travis-ci.org/mceachen/ruby-geonames)
|
2
|
+
|
3
|
+
Ruby library for [Geonames Web Services](http://www.geonames.org/export/)
|
4
|
+
|
5
|
+
Created by [TouchBase Counsulting](http://www.tbcn.ca/geonames) to support GIS processes for [Carpool Connect](http://www.carpoolconnect.com/). Inspired by the Geonames [Java Client API library](http://www.geonames.org/source-code/).
|
6
|
+
|
7
|
+
## Installing ruby-geonames
|
8
|
+
|
9
|
+
Install from the command line:
|
10
|
+
|
11
|
+
sudo gem install ruby-geonames
|
12
|
+
|
13
|
+
## Examples
|
14
|
+
|
15
|
+
The following exercises several of the Geonames web services, [full list of services](http://www.geonames.org/export/).
|
16
|
+
|
17
|
+
**Load the the geonames API**
|
18
|
+
|
19
|
+
require 'geonames'
|
20
|
+
|
21
|
+
**get list of places near by longitude/longitude location**
|
22
|
+
|
23
|
+
places_nearby = Geonames::WebService.find_nearby_place_name 43.900120387, -78.882869834
|
24
|
+
p places_nearby
|
25
|
+
|
26
|
+
outputs:
|
27
|
+
|
28
|
+
`[#<Geonames::Toponym:0x6c8c98 @population=nil, @geoname_id='6094578', @longitude=-78.849568878, @feature_class_name=nil, @country_name='Canada', @latitude=43.900120387, @feature_class='P', @country_code='CA', @name='Oshawa', @feature_code_name=nil, @elevation=nil, @distance=2.6679930307932, @alternate_names=nil, @feature_code='PPL'>]`
|
29
|
+
|
30
|
+
**get timezone for longitude/longitude location**
|
31
|
+
|
32
|
+
timezone = Geonames::WebService.timezone 43.900120387, -78.882869834
|
33
|
+
p timezone
|
34
|
+
|
35
|
+
**get country code for longitude/longitude location**
|
36
|
+
|
37
|
+
country_code = Geonames::WebService.country_code 43.900120387, -78.882869834
|
38
|
+
p country_code
|
39
|
+
|
40
|
+
**get country sub-division info for longitude/longitude location**
|
41
|
+
|
42
|
+
country_subdivision = Geonames::WebService.country_subdivision 43.900120387, -78.882869834
|
43
|
+
p country_subdivision
|
44
|
+
|
45
|
+
**get postal codes for a given location**
|
46
|
+
|
47
|
+
postal_code_sc = Geonames::PostalCodeSearchCriteria.new
|
48
|
+
postal_code_sc.place_name = "Oshawa"
|
49
|
+
postal_codes = Geonames::WebService.postal_code_search postal_code_sc
|
50
|
+
p postal_codes
|
51
|
+
|
52
|
+
**get nearby postal codes for a place name**
|
53
|
+
|
54
|
+
postal_code_sc = Geonames::PostalCodeSearchCriteria.new
|
55
|
+
postal_code_sc.place_name = "Oshawa"
|
56
|
+
postal_codes_nearby = Geonames::WebService.find_nearby_postal_codes postal_code_sc
|
57
|
+
p postal_codes_nearby
|
58
|
+
|
59
|
+
## Language Support
|
60
|
+
|
61
|
+
Geonames uses 'en' as the default locale. You can change the requested language like this:
|
62
|
+
|
63
|
+
Geonames.lang = 'de'
|
64
|
+
|
65
|
+
In a Rails application, you could set the language from the I18n.locale:
|
66
|
+
|
67
|
+
Geonames.lang = I18n.locale
|
68
|
+
|
69
|
+
## Commercial Service Support
|
70
|
+
|
71
|
+
If you use the commercial service, you should put something like this in your configuration:
|
72
|
+
|
73
|
+
Geonames.username = 'username'
|
74
|
+
Geonames.base_url = 'http://ws.geonames.net'
|
75
|
+
|
76
|
+
In a Rails application, this could go into `config/initializers/geonames.rb`.
|
77
|
+
|
78
|
+
# Contributors
|
79
|
+
|
80
|
+
1. Adam Wisniewski
|
81
|
+
2. Nicolas Marchildon (elecnix)
|
82
|
+
3. Chris Griego
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
task :default => :spec
|
5
|
+
|
6
|
+
RSpec::Core::RakeTask.new
|
7
|
+
|
8
|
+
namespace :spec do
|
9
|
+
RSpec::Core::RakeTask.new :rcov do |task|
|
10
|
+
task.rcov = true
|
11
|
+
task.rcov_opts = "--exclude spec/*,gems/*"
|
12
|
+
end if RUBY_VERSION < "1.9"
|
13
|
+
end
|
data/init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "lib", "geonames")
|
data/lib/geonames.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
#=============================================================================
|
2
2
|
#
|
3
|
-
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
3
|
+
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
4
|
+
# Contributions by Chris Griego
|
4
5
|
#
|
5
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6
7
|
# use this file except in compliance with the License. You may obtain a copy of
|
7
|
-
# the License at
|
8
|
+
# the License at
|
8
9
|
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
11
|
#
|
11
12
|
# Unless required by applicable law or agreed to in writing, software
|
12
13
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
@@ -15,26 +16,41 @@
|
|
15
16
|
# the License.
|
16
17
|
#
|
17
18
|
#=============================================================================
|
19
|
+
require 'geonames/version'
|
18
20
|
|
19
|
-
|
20
|
-
|
21
|
-
|
21
|
+
module Geonames
|
22
|
+
autoload :BoundingBox, 'geonames/bounding_box'
|
23
|
+
autoload :Config, 'geonames/config'
|
24
|
+
autoload :CountryInfo, 'geonames/country_info'
|
25
|
+
autoload :CountrySubdivision, 'geonames/country_subdivision'
|
26
|
+
autoload :Intersection, 'geonames/intersection'
|
27
|
+
autoload :PostalCode, 'geonames/postal_code'
|
28
|
+
autoload :PostalCodeSearchCriteria, 'geonames/postal_code_search_criteria'
|
29
|
+
autoload :Timezone, 'geonames/timezone'
|
30
|
+
autoload :Toponym, 'geonames/toponym'
|
31
|
+
autoload :ToponymSearchCriteria, 'geonames/toponym_search_criteria'
|
32
|
+
autoload :ToponymSearchResult, 'geonames/toponym_search_result'
|
33
|
+
autoload :WebService, 'geonames/web_service'
|
34
|
+
autoload :WikipediaArticle, 'geonames/wikipedia_article'
|
22
35
|
|
23
|
-
|
24
|
-
|
25
|
-
require 'toponym_search_result'
|
26
|
-
require 'toponym_search_criteria'
|
27
|
-
require 'postal_code'
|
28
|
-
require 'postal_code_search_criteria'
|
29
|
-
require 'timezone'
|
30
|
-
require 'country_subdivision'
|
31
|
-
require 'wikipedia_article'
|
32
|
-
require 'intersection'
|
36
|
+
GEONAMES_SERVER = "http://ws.geonames.net"
|
37
|
+
USER_AGENT = "geonames ruby webservice client #{VERSION}"
|
33
38
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
39
|
+
class << self
|
40
|
+
def config
|
41
|
+
Thread.current[:geonames_config] ||= Geonames::Config.new
|
42
|
+
end
|
40
43
|
|
44
|
+
%w(base_url lang username token).each do |method|
|
45
|
+
module_eval <<-DELEGATORS, __FILE__, __LINE__ + 1
|
46
|
+
def #{method}
|
47
|
+
config.#{method}
|
48
|
+
end
|
49
|
+
|
50
|
+
def #{method}=(value)
|
51
|
+
config.#{method} = (value)
|
52
|
+
end
|
53
|
+
DELEGATORS
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Geonames
|
2
|
+
class BoundingBox
|
3
|
+
attr_accessor :north_point, :south_point, :east_point, :west_point
|
4
|
+
|
5
|
+
def initialize(north=0.0, south=0.0, east=0.0, west=0.0)
|
6
|
+
self.north_point = north
|
7
|
+
self.south_point = south
|
8
|
+
self.east_point = east
|
9
|
+
self.west_point = west
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
#=============================================================================
|
2
2
|
#
|
3
|
-
# Copyright
|
3
|
+
# Copyright 2010 Jan Schwenzien <jan@schwenzien.info>
|
4
|
+
# Contributions by Chris Griego
|
4
5
|
#
|
5
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6
7
|
# use this file except in compliance with the License. You may obtain a copy of
|
7
|
-
# the License at
|
8
|
+
# the License at
|
8
9
|
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
11
|
#
|
11
12
|
# Unless required by applicable law or agreed to in writing, software
|
12
13
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
@@ -17,16 +18,28 @@
|
|
17
18
|
#=============================================================================
|
18
19
|
|
19
20
|
module Geonames
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
class Config
|
22
|
+
@@default_base_url = "http://api.geonames.org"
|
23
|
+
@@default_lang = "en"
|
24
|
+
@@default_username = nil
|
25
|
+
@@default_token = nil
|
26
|
+
|
27
|
+
attr_writer :base_url, :lang, :username, :token
|
28
|
+
|
29
|
+
def base_url
|
30
|
+
@base_url || @@default_base_url
|
31
|
+
end
|
32
|
+
|
33
|
+
def lang
|
34
|
+
@lang || @@default_lang
|
29
35
|
end
|
30
|
-
end
|
31
36
|
|
37
|
+
def username
|
38
|
+
@username || @@default_username
|
39
|
+
end
|
32
40
|
|
41
|
+
def token
|
42
|
+
@token || @@default_token
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'geonames/bounding_box'
|
2
|
+
|
3
|
+
module Geonames
|
4
|
+
class CountryInfo
|
5
|
+
attr_accessor :country_code, :country_name, :iso_numeric, :iso_alpha_3,
|
6
|
+
:fips_code, :continent, :capital, :area_sq_km, :population,
|
7
|
+
:currency_code, :geoname_id, :bounding_box, :languages
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@bounding_box = BoundingBox.new
|
11
|
+
@languages = []
|
12
|
+
end
|
13
|
+
|
14
|
+
def set_bounding_box(north, south, east, west)
|
15
|
+
@bounding_box = BoundingBox.new(north, south, east, west)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
#=============================================================================
|
2
2
|
#
|
3
|
-
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
3
|
+
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
4
|
+
# Contributions by Chris Griego
|
4
5
|
#
|
5
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6
7
|
# use this file except in compliance with the License. You may obtain a copy of
|
7
|
-
# the License at
|
8
|
+
# the License at
|
8
9
|
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
11
|
#
|
11
12
|
# Unless required by applicable law or agreed to in writing, software
|
12
13
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
@@ -16,6 +17,10 @@
|
|
16
17
|
#
|
17
18
|
#=============================================================================
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
module Geonames
|
21
|
+
class CountrySubdivision
|
22
|
+
attr_accessor :country_code, :country_name,
|
23
|
+
:admin_name_1, :admin_code_1,
|
24
|
+
:code_fips, :code_iso
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#=============================================================================
|
2
|
+
#
|
3
|
+
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
4
|
+
# Contributions by Chris Griego
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
7
|
+
# use this file except in compliance with the License. You may obtain a copy of
|
8
|
+
# the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
15
|
+
# License for the specific language governing permissions and limitations under
|
16
|
+
# the License.
|
17
|
+
#
|
18
|
+
#=============================================================================
|
19
|
+
|
20
|
+
module Geonames
|
21
|
+
class Intersection
|
22
|
+
attr_accessor :street_1, :street_2,
|
23
|
+
:postal_code, :place_name, :country_code,
|
24
|
+
:latitude, :longitude, :admin_name_1,
|
25
|
+
:admin_code_1, :admin_name_2, :admin_code_2,
|
26
|
+
:distance
|
27
|
+
end
|
28
|
+
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
#=============================================================================
|
2
2
|
#
|
3
|
-
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
3
|
+
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
4
|
+
# Contributions by Chris Griego
|
4
5
|
#
|
5
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6
7
|
# use this file except in compliance with the License. You may obtain a copy of
|
7
|
-
# the License at
|
8
|
+
# the License at
|
8
9
|
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
11
|
#
|
11
12
|
# Unless required by applicable law or agreed to in writing, software
|
12
13
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
@@ -17,17 +18,10 @@
|
|
17
18
|
#=============================================================================
|
18
19
|
|
19
20
|
module Geonames
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
def initialize
|
28
|
-
@toponyms = Array.new
|
29
|
-
end
|
30
|
-
end
|
21
|
+
class PostalCode
|
22
|
+
attr_accessor :postal_code, :place_name, :country_code,
|
23
|
+
:latitude, :longitude, :admin_name_1,
|
24
|
+
:admin_code_1, :admin_name_2, :admin_code_2,
|
25
|
+
:distance
|
26
|
+
end
|
31
27
|
end
|
32
|
-
|
33
|
-
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#=============================================================================
|
2
|
+
#
|
3
|
+
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
4
|
+
# Contributions by Chris Griego
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
7
|
+
# use this file except in compliance with the License. You may obtain a copy of
|
8
|
+
# the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
15
|
+
# License for the specific language governing permissions and limitations under
|
16
|
+
# the License.
|
17
|
+
#
|
18
|
+
#=============================================================================
|
19
|
+
|
20
|
+
require 'cgi'
|
21
|
+
|
22
|
+
module Geonames
|
23
|
+
class PostalCodeSearchCriteria
|
24
|
+
attr_accessor :postal_code, :place_name, :country_code,
|
25
|
+
:latitude, :longitude, :style,
|
26
|
+
:max_rows, :is_or_operator, :radius
|
27
|
+
|
28
|
+
def initialize(params={})
|
29
|
+
params.each do |attr, value|
|
30
|
+
self.public_send("#{attr}=", value)
|
31
|
+
end if params
|
32
|
+
|
33
|
+
@is_or_operator = false
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_query_params_string
|
37
|
+
url = ''
|
38
|
+
url << "&postalcode=" + CGI.escape(@postal_code) unless @postal_code.nil?
|
39
|
+
url << "&placename=" + CGI.escape(@place_name) unless @place_name.nil?
|
40
|
+
url << "&lat=" + CGI.escape(@latitude.to_s) unless @latitude.nil?
|
41
|
+
url << "&lng=" + CGI.escape(@longitude.to_s) unless @longitude.nil?
|
42
|
+
url << "&style=" + CGI.escape(@style) unless @style.nil?
|
43
|
+
url << "&country=" + CGI.escape(@country_code) unless @country_code.nil?
|
44
|
+
url << "&maxRows=" + CGI.escape(@max_rows.to_s) unless @max_rows.nil?
|
45
|
+
url << "&radius=" + CGI.escape(@radius.to_s) unless @radius.nil?
|
46
|
+
url << "&operator=OR" if @is_or_operator
|
47
|
+
url
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
#=============================================================================
|
2
2
|
#
|
3
|
-
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
3
|
+
# Copyright 2007 Adam Wisniewski <adamw@tbcn.ca>
|
4
|
+
# Contributions by Chris Griego
|
4
5
|
#
|
5
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6
7
|
# use this file except in compliance with the License. You may obtain a copy of
|
7
|
-
# the License at
|
8
|
+
# the License at
|
8
9
|
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
11
|
#
|
11
12
|
# Unless required by applicable law or agreed to in writing, software
|
12
13
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
@@ -17,13 +18,11 @@
|
|
17
18
|
#=============================================================================
|
18
19
|
|
19
20
|
module Geonames
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
class Timezone
|
22
|
+
attr_accessor :timezone_id, :gmt_offset, :dst_offset, :raw_offset
|
23
|
+
|
24
|
+
def tzinfo
|
25
|
+
TZInfo::Timezone.get(timezone_id)
|
26
|
+
end
|
26
27
|
end
|
27
28
|
end
|
28
|
-
|
29
|
-
|