geonames_api 0.1.1 → 0.1.2
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 +2 -1
- data/README.md +4 -12
- data/geonames_api.gemspec +1 -1
- data/lib/geonames_api.rb +3 -3
- data/lib/geonames_api/base.rb +0 -1
- data/lib/geonames_api/country.rb +51 -9
- data/lib/geonames_api/entity.rb +2 -2
- data/lib/geonames_api/error.rb +38 -14
- data/lib/geonames_api/neighbourhood.rb +38 -0
- data/lib/geonames_api/version.rb +1 -1
- data/spec/geonames_api/country_spec.rb +15 -0
- data/spec/geonames_api/neighbourhood_spec.rb +14 -0
- data/spec/geonames_api/place_search_spec.rb +3 -2
- data/spec/geonames_api/retry_spec.rb +15 -17
- data/spec/spec_helper.rb +2 -0
- metadata +36 -18
- checksums.yaml +0 -7
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# GeoNames API
|
2
2
|
|
3
|
-
[](http://travis-ci.org/buytruckload/geonames_api)
|
4
|
+
[](https://codeclimate.com/repos/52a4b4c513d63712180028d4/feed)
|
5
5
|
|
6
6
|
This is a lightweight client for the [GeoNames](http://www.geonames.org) API. Huge thanks to them for such a great service!
|
7
7
|
|
@@ -11,16 +11,6 @@ This is a simplified ruby implementation that does not implement the entire API.
|
|
11
11
|
|
12
12
|
## Getting Started
|
13
13
|
|
14
|
-
Add this line to your application's Gemfile:
|
15
|
-
|
16
|
-
gem 'geonames_api'
|
17
|
-
|
18
|
-
And then execute:
|
19
|
-
|
20
|
-
$ bundle
|
21
|
-
|
22
|
-
Or install it yourself as:
|
23
|
-
|
24
14
|
$ gem install geonames_api
|
25
15
|
|
26
16
|
## Usage
|
@@ -190,6 +180,8 @@ A number of nice features were added by [@mrm](http://twitter.com/mrm) including
|
|
190
180
|
* Timezone, AlternateName, and GeoName entries properly encoded in results
|
191
181
|
* better test coverage, Travis CI, and CodeClimate integration
|
192
182
|
|
183
|
+
To contribute:
|
184
|
+
|
193
185
|
1. Fork it
|
194
186
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
195
187
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
data/geonames_api.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
|
|
14
14
|
|
15
15
|
gem.add_runtime_dependency "activesupport"
|
16
16
|
gem.add_runtime_dependency "tzinfo"
|
17
|
-
gem.add_runtime_dependency "
|
17
|
+
gem.add_runtime_dependency "rubyzip"
|
18
18
|
gem.add_development_dependency 'rake'
|
19
19
|
gem.add_development_dependency 'rspec'
|
20
20
|
|
data/lib/geonames_api.rb
CHANGED
@@ -2,7 +2,7 @@ require 'open-uri'
|
|
2
2
|
require 'json'
|
3
3
|
require 'csv'
|
4
4
|
require 'active_support/all'
|
5
|
-
require '
|
5
|
+
require 'zip'
|
6
6
|
|
7
7
|
module GeoNamesAPI
|
8
8
|
|
@@ -25,10 +25,10 @@ module GeoNamesAPI
|
|
25
25
|
self.logger = nil
|
26
26
|
|
27
27
|
mattr_accessor :retries
|
28
|
-
self.retries =
|
28
|
+
self.retries = 5
|
29
29
|
|
30
30
|
mattr_accessor :max_sleep_time_between_retries
|
31
|
-
self.max_sleep_time_between_retries =
|
31
|
+
self.max_sleep_time_between_retries = 10
|
32
32
|
|
33
33
|
def self.params
|
34
34
|
{
|
data/lib/geonames_api/base.rb
CHANGED
data/lib/geonames_api/country.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
1
3
|
module GeoNamesAPI
|
2
4
|
class Country < ListEndpoint
|
3
5
|
|
@@ -8,21 +10,61 @@ module GeoNamesAPI
|
|
8
10
|
EXPORT_HEADERS = %W(country_code postal_code place_name admin_name1 admin_code1 admin_name2 admin_code2 admin_name3 admin_code3 latitude longitude accuracy)
|
9
11
|
|
10
12
|
def postal_code_export
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
Zip::Archive.open_buffer(stream) do |archive|
|
15
|
-
archive.each do |f|
|
16
|
-
csv << f.read if f.name =~ /\A#{country_code}/
|
17
|
-
end
|
18
|
-
end
|
19
|
-
csv
|
13
|
+
download_archive
|
14
|
+
extract_file
|
15
|
+
create_csv
|
20
16
|
end
|
21
17
|
|
22
18
|
def postal_code_csv
|
23
19
|
CSV.parse(postal_code_export, headers: true, col_sep: "\t", header_converters: :symbol, encoding: "ISO8859-1")
|
24
20
|
end
|
25
21
|
|
22
|
+
private
|
23
|
+
|
24
|
+
def download_archive
|
25
|
+
File.open(export_directory.to_s + "/export.zip", "wb") do |f|
|
26
|
+
open(postal_code_export_url, "rb") do |export|
|
27
|
+
f.write export.read
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def extract_file
|
33
|
+
Zip::File.foreach(export_directory.to_s + "/export.zip") do |f|
|
34
|
+
File.delete(extract_file_name) if File.exist?(extract_file_name)
|
35
|
+
f.extract(extract_file_name) if f.name =~ /\A#{country_code}/
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def create_csv
|
40
|
+
File.open(csv_file_name, "wb") do |f|
|
41
|
+
f.write EXPORT_HEADERS.join("\t") + "\n"
|
42
|
+
f.write File.open(extract_file_name, "r").read
|
43
|
+
end
|
44
|
+
File.open(csv_file_name, "r").read
|
45
|
+
end
|
46
|
+
|
47
|
+
def extract_file_name
|
48
|
+
export_directory + "/tmp.txt"
|
49
|
+
end
|
50
|
+
|
51
|
+
def csv_file_name
|
52
|
+
export_directory + "/#{country_code}.txt"
|
53
|
+
end
|
54
|
+
|
55
|
+
# if rails is defined use the rails tmp directory to ensure
|
56
|
+
# compatability with heroku
|
57
|
+
def export_directory
|
58
|
+
directory = if defined?(Rails)
|
59
|
+
Rails.root.join("tmp","geonames_api").to_s
|
60
|
+
else
|
61
|
+
File.expand_path("../../../tmp", __FILE__)
|
62
|
+
end
|
63
|
+
FileUtils.mkdir(directory) unless File.directory?(directory)
|
64
|
+
FileUtils.chmod_R(0777, directory)
|
65
|
+
directory
|
66
|
+
end
|
67
|
+
|
26
68
|
def postal_code_export_url
|
27
69
|
EXPORT_BASE_URL + country_code + ".zip"
|
28
70
|
end
|
data/lib/geonames_api/entity.rb
CHANGED
@@ -24,8 +24,8 @@ module GeoNamesAPI
|
|
24
24
|
aliases = []
|
25
25
|
value = @response[key]
|
26
26
|
parsed_value = case (key)
|
27
|
-
when 'geonames', 'streetSegment'
|
28
|
-
aliases = [:geonames, :results]
|
27
|
+
when 'geonames', 'streetSegment', 'postalcodes'
|
28
|
+
aliases = [:geonames, :results, :postalcodes]
|
29
29
|
value.map { |ea| self.class.new(ea) }
|
30
30
|
when 'alternateNames'
|
31
31
|
AlternateNames.new(value)
|
data/lib/geonames_api/error.rb
CHANGED
@@ -2,27 +2,51 @@ module GeoNamesAPI
|
|
2
2
|
class Error < StandardError
|
3
3
|
# See http://www.geonames.org/export/webservice-exception.html
|
4
4
|
def self.from_status(status)
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
Error
|
5
|
+
error_code = status['value'].to_i
|
6
|
+
error_class = for_error_code(error_code) || self
|
7
|
+
raise error_class, "#{status['message']} (#{error_code})"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.for_error_code(error_code)
|
11
|
+
@lookup ||= subclasses.reduce({}) do |h, subclass|
|
12
|
+
subclass::ERROR_CODES.each { |ea| h[ea] = subclass }
|
13
|
+
h
|
15
14
|
end
|
16
|
-
|
15
|
+
@lookup[error_code]
|
17
16
|
end
|
18
17
|
end
|
19
18
|
|
19
|
+
class AuthorizationException < Error
|
20
|
+
ERROR_CODES = [10]
|
21
|
+
end
|
22
|
+
class RecordDoesNotExist < Error
|
23
|
+
ERROR_CODES = [11]
|
24
|
+
end
|
20
25
|
class Timeout < Error
|
26
|
+
ERROR_CODES = [13, 22]
|
21
27
|
end
|
22
|
-
|
23
28
|
class InvalidParameter < Error
|
29
|
+
ERROR_CODES = [14]
|
24
30
|
end
|
25
|
-
|
26
|
-
|
31
|
+
class NoResultFound < Error
|
32
|
+
ERROR_CODES = [15]
|
33
|
+
end
|
34
|
+
class DuplicateException < Error
|
35
|
+
ERROR_CODES = [16]
|
36
|
+
end
|
37
|
+
class PostalCodeNotFound < Error
|
38
|
+
ERROR_CODES = [17]
|
39
|
+
end
|
40
|
+
class DailyLimitExceeded < Error
|
41
|
+
ERROR_CODES = [18]
|
42
|
+
end
|
43
|
+
class HourlyLimitExceeded < Error
|
44
|
+
ERROR_CODES = [19]
|
45
|
+
end
|
46
|
+
class WeeklyLimitExceeded < Error
|
47
|
+
ERROR_CODES = [20]
|
48
|
+
end
|
49
|
+
class ServiceNotImplemented < Error
|
50
|
+
ERROR_CODES = [23]
|
27
51
|
end
|
28
52
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module GeoNamesAPI
|
2
|
+
class Neighbourhood < SingletonEndpoint
|
3
|
+
METHOD = 'neighbourhoodJSON'
|
4
|
+
FIND_PARAMS = %w(lat lng)
|
5
|
+
|
6
|
+
def hierarchy
|
7
|
+
%w{countryName adminName1 adminName2 city name}.map do |ea|
|
8
|
+
@neighbourhood[ea]
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
=begin
|
15
|
+
|
16
|
+
{
|
17
|
+
"neighbourhood": {
|
18
|
+
"countryName": "United States",
|
19
|
+
"adminName1": "New York",
|
20
|
+
"adminName2": "New York County",
|
21
|
+
"city": "New York City-Manhattan",
|
22
|
+
"name": "Central Park",
|
23
|
+
"adminCode2": "061",
|
24
|
+
"adminCode1": "NY",
|
25
|
+
"countryCode": "US"
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
or
|
30
|
+
|
31
|
+
{
|
32
|
+
"status": {
|
33
|
+
"message": "we are afraid we could not find a neighbourhood for latitude and longitude :XXX, YYYY",
|
34
|
+
"value": 15
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
=end
|
data/lib/geonames_api/version.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GeoNamesAPI::Neighbourhood do
|
4
|
+
describe "::find" do
|
5
|
+
it "should find NYC" do
|
6
|
+
result = GeoNamesAPI::Neighbourhood.find(lat: 40.78343, lng: -73.96625)
|
7
|
+
result.hierarchy.should == ["United States", "New York", "New York County", "New York City-Manhattan", "Central Park"]
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should not find streets outside of the US" do
|
11
|
+
proc { GeoNamesAPI::Neighbourhood.find(0, 0) }.should raise_error GeoNamesAPI::Error
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -28,8 +28,9 @@ describe GeoNamesAPI::PlaceSearch do
|
|
28
28
|
|
29
29
|
describe "#next_page" do
|
30
30
|
it "should grab the next page of results from the same search" do
|
31
|
-
|
32
|
-
|
31
|
+
# the paging with 'columbus' sometimes doesn't match across the 3 pages.
|
32
|
+
big_search = GeoNamesAPI::PlaceSearch.where(name: 'goleta', maxRows: 9)
|
33
|
+
search_pg1 = GeoNamesAPI::PlaceSearch.where(name: 'goleta', maxRows: 3)
|
33
34
|
search_pg2 = search_pg1.next_page
|
34
35
|
search_pg3 = search_pg2.next_page
|
35
36
|
search_pg1.size.should == 3
|
@@ -1,27 +1,25 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe GeoNamesAPI::Base do
|
4
|
-
|
5
|
-
{
|
6
|
-
"status": {
|
7
|
-
"message": "ERROR: canceling statement due to statement timeout",
|
8
|
-
"value": 13
|
9
|
-
}
|
10
|
-
}
|
11
|
-
JSON
|
12
|
-
|
13
|
-
# This is not a correct, complete response, but that's not relevant to the spec:
|
14
|
-
EXAMPLE_RESPONSE = JSON.load <<-JSON
|
15
|
-
{"geonames": [{ "name": "Earth" }]}
|
16
|
-
JSON
|
17
|
-
|
18
|
-
describe "::find" do
|
4
|
+
describe "retries" do
|
19
5
|
before :each do
|
20
6
|
GeoNamesAPI.max_sleep_time_between_retries = 0
|
7
|
+
@timeout = JSON.load <<-JSON
|
8
|
+
{
|
9
|
+
"status": {
|
10
|
+
"message": "ERROR: canceling statement due to statement timeout",
|
11
|
+
"value": 13
|
12
|
+
}
|
13
|
+
}
|
14
|
+
JSON
|
15
|
+
# This is not a correct, complete response, but that's not relevant to the spec:
|
16
|
+
@response = JSON.load <<-JSON
|
17
|
+
{"geonames": [{ "name": "Earth" }]}
|
18
|
+
JSON
|
21
19
|
end
|
22
20
|
|
23
21
|
it "retries when geonames returns timeout errors" do
|
24
|
-
GeoNamesAPI::Hierarchy.stub(:make_request).and_return(
|
22
|
+
GeoNamesAPI::Hierarchy.stub(:make_request).and_return(@timeout, @response)
|
25
23
|
hierarchy = GeoNamesAPI::Hierarchy.find(6295630)
|
26
24
|
earth = hierarchy.first
|
27
25
|
earth.should be_present
|
@@ -29,7 +27,7 @@ describe GeoNamesAPI::Base do
|
|
29
27
|
end
|
30
28
|
|
31
29
|
it "fails when geonames returns timeout errors too many times" do
|
32
|
-
GeoNamesAPI::Hierarchy.stub(:make_request).and_return(
|
30
|
+
GeoNamesAPI::Hierarchy.stub(:make_request).and_return(@timeout, @timeout, @response)
|
33
31
|
GeoNamesAPI.retries = 1
|
34
32
|
proc { GeoNamesAPI::Hierarchy.find(6295630) }.should raise_error GeoNamesAPI::Timeout
|
35
33
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geonames_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Sean Devine
|
@@ -9,76 +10,86 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2014-01-03 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: activesupport
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
|
-
- - '>='
|
20
|
+
- - ! '>='
|
19
21
|
- !ruby/object:Gem::Version
|
20
22
|
version: '0'
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
|
-
- - '>='
|
28
|
+
- - ! '>='
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: '0'
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: tzinfo
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
|
-
- - '>='
|
36
|
+
- - ! '>='
|
33
37
|
- !ruby/object:Gem::Version
|
34
38
|
version: '0'
|
35
39
|
type: :runtime
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
|
-
- - '>='
|
44
|
+
- - ! '>='
|
40
45
|
- !ruby/object:Gem::Version
|
41
46
|
version: '0'
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
48
|
+
name: rubyzip
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
|
-
- - '>='
|
52
|
+
- - ! '>='
|
47
53
|
- !ruby/object:Gem::Version
|
48
54
|
version: '0'
|
49
55
|
type: :runtime
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
|
-
- - '>='
|
60
|
+
- - ! '>='
|
54
61
|
- !ruby/object:Gem::Version
|
55
62
|
version: '0'
|
56
63
|
- !ruby/object:Gem::Dependency
|
57
64
|
name: rake
|
58
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
59
67
|
requirements:
|
60
|
-
- - '>='
|
68
|
+
- - ! '>='
|
61
69
|
- !ruby/object:Gem::Version
|
62
70
|
version: '0'
|
63
71
|
type: :development
|
64
72
|
prerelease: false
|
65
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
66
75
|
requirements:
|
67
|
-
- - '>='
|
76
|
+
- - ! '>='
|
68
77
|
- !ruby/object:Gem::Version
|
69
78
|
version: '0'
|
70
79
|
- !ruby/object:Gem::Dependency
|
71
80
|
name: rspec
|
72
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
73
83
|
requirements:
|
74
|
-
- - '>='
|
84
|
+
- - ! '>='
|
75
85
|
- !ruby/object:Gem::Version
|
76
86
|
version: '0'
|
77
87
|
type: :development
|
78
88
|
prerelease: false
|
79
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
80
91
|
requirements:
|
81
|
-
- - '>='
|
92
|
+
- - ! '>='
|
82
93
|
- !ruby/object:Gem::Version
|
83
94
|
version: '0'
|
84
95
|
description: Simple ruby client for the GeoNames API to get free and easy geographic
|
@@ -114,6 +125,7 @@ files:
|
|
114
125
|
- lib/geonames_api/hierarchy.rb
|
115
126
|
- lib/geonames_api/list_endpoint.rb
|
116
127
|
- lib/geonames_api/nearby_postal_code.rb
|
128
|
+
- lib/geonames_api/neighbourhood.rb
|
117
129
|
- lib/geonames_api/place.rb
|
118
130
|
- lib/geonames_api/place_name.rb
|
119
131
|
- lib/geonames_api/place_search.rb
|
@@ -125,8 +137,10 @@ files:
|
|
125
137
|
- lib/geonames_api/weather.rb
|
126
138
|
- lib/geonames_api/weather_i_c_a_o.rb
|
127
139
|
- lib/geonames_api/wikipedia.rb
|
140
|
+
- spec/geonames_api/country_spec.rb
|
128
141
|
- spec/geonames_api/country_subdivision_spec.rb
|
129
142
|
- spec/geonames_api/hierarchy_spec.rb
|
143
|
+
- spec/geonames_api/neighbourhood_spec.rb
|
130
144
|
- spec/geonames_api/place_name_spec.rb
|
131
145
|
- spec/geonames_api/place_search_spec.rb
|
132
146
|
- spec/geonames_api/place_spec.rb
|
@@ -136,34 +150,37 @@ files:
|
|
136
150
|
- spec/spec_helper.rb
|
137
151
|
homepage: https://github.com/buytruckload/geonames_api
|
138
152
|
licenses: []
|
139
|
-
metadata: {}
|
140
153
|
post_install_message:
|
141
154
|
rdoc_options: []
|
142
155
|
require_paths:
|
143
156
|
- lib
|
144
157
|
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
none: false
|
145
159
|
requirements:
|
146
|
-
- - '>='
|
160
|
+
- - ! '>='
|
147
161
|
- !ruby/object:Gem::Version
|
148
162
|
version: '0'
|
149
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
150
165
|
requirements:
|
151
|
-
- - '>='
|
166
|
+
- - ! '>='
|
152
167
|
- !ruby/object:Gem::Version
|
153
168
|
version: '0'
|
154
169
|
requirements: []
|
155
170
|
rubyforge_project:
|
156
|
-
rubygems_version:
|
171
|
+
rubygems_version: 1.8.23
|
157
172
|
signing_key:
|
158
|
-
specification_version:
|
173
|
+
specification_version: 3
|
159
174
|
summary: This is a lightweight client for the GeoNames API. Huge thanks to them for
|
160
175
|
such a great service! There are many GeoNames API clients. BUT, most are rewritten
|
161
176
|
versions of a Java API whose interface is a little funny =| This is a simplified
|
162
177
|
ruby implementation that does not implement the entire API. But, it's lightweight
|
163
178
|
and has a nice interface and will be easy to extend :)
|
164
179
|
test_files:
|
180
|
+
- spec/geonames_api/country_spec.rb
|
165
181
|
- spec/geonames_api/country_subdivision_spec.rb
|
166
182
|
- spec/geonames_api/hierarchy_spec.rb
|
183
|
+
- spec/geonames_api/neighbourhood_spec.rb
|
167
184
|
- spec/geonames_api/place_name_spec.rb
|
168
185
|
- spec/geonames_api/place_search_spec.rb
|
169
186
|
- spec/geonames_api/place_spec.rb
|
@@ -171,3 +188,4 @@ test_files:
|
|
171
188
|
- spec/geonames_api/street_spec.rb
|
172
189
|
- spec/geonames_api/weather_icao_spec.rb
|
173
190
|
- spec/spec_helper.rb
|
191
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: feb56410dfb4499eaac158048e1950c760ea4215
|
4
|
-
data.tar.gz: b10b25b67f681f847c7fe42ad263009ee366b25c
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: f92de847f4285eb1ae61a61c03e9429b39ab3ea423291ab669e30c16a59656a1d9ae0ae1570ffc274ed5db930efb00dbd28bc5268adf55d9fea562c70665540d
|
7
|
-
data.tar.gz: 40439223d27f035a99fbe37f02489f47c4c449a4e373d51086bcbb5575522de39bfc0c50ca772906208b6e1e3c6ae57efd8d148cf9a41dd746a3752931816516
|