geonames_api 0.1.2 → 0.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b50c12c8caf88cb16c72e51b02e0899f9f6f76df
4
+ data.tar.gz: 31bf711659f22e768a31827e15d1577e1d138362
5
+ SHA512:
6
+ metadata.gz: b09f7294b7b01b99732866b17fb59ae7b96a3065ed06c344a5219cd2737e2f1a6b133ca07d792c05b2b05fcafe63a56d2065bc97697a7df4246b5db7c63f463e
7
+ data.tar.gz: c6bc4c9b9326f9837f473231280a2f59a57169a46f453d4c21eee6c39d2635daccc15013746f7a777a63789f5d8c68a047c13d28f3d0ff963af9a22b98aee79c
@@ -2,6 +2,5 @@ language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
4
  - 1.9.3
5
- # - 1.8.7 is not supported due to a 1.9-style hash in geonames_api.rb :\
6
5
 
7
6
  script: GEONAMES_USER=geonames_api_ci bundle exec rake --trace
@@ -28,7 +28,9 @@ module GeoNamesAPI
28
28
  rescue Timeout => e
29
29
  if retries_remaining > 0
30
30
  retries_remaining -= 1
31
- sleep rand * GeoNamesAPI.max_sleep_time_between_retries
31
+ sleep_time = rand * GeoNamesAPI.max_sleep_time_between_retries
32
+ GeoNamesAPI.logger.info("GEONAMES RETRIABLE ERROR: #{e}. Retrying in #{sleep_time}s.") if GeoNamesAPI.logger
33
+ sleep sleep_time
32
34
  retry
33
35
  else
34
36
  raise e
@@ -23,7 +23,8 @@ module GeoNamesAPI
23
23
  ERROR_CODES = [11]
24
24
  end
25
25
  class Timeout < Error
26
- ERROR_CODES = [13, 22]
26
+ # 12 is "other error", but is normally "Cannot get a connection, pool error Timeout waiting for idle object"
27
+ ERROR_CODES = [12, 13, 22]
27
28
  end
28
29
  class InvalidParameter < Error
29
30
  ERROR_CODES = [14]
@@ -37,13 +38,16 @@ module GeoNamesAPI
37
38
  class PostalCodeNotFound < Error
38
39
  ERROR_CODES = [17]
39
40
  end
40
- class DailyLimitExceeded < Error
41
+ class LimitExceeded < Error
42
+ ERROR_CODES = []
43
+ end
44
+ class DailyLimitExceeded < LimitExceeded
41
45
  ERROR_CODES = [18]
42
46
  end
43
- class HourlyLimitExceeded < Error
47
+ class HourlyLimitExceeded < LimitExceeded
44
48
  ERROR_CODES = [19]
45
49
  end
46
- class WeeklyLimitExceeded < Error
50
+ class WeeklyLimitExceeded < LimitExceeded
47
51
  ERROR_CODES = [20]
48
52
  end
49
53
  class ServiceNotImplemented < Error
@@ -0,0 +1,9 @@
1
+ module GeoNamesAPI
2
+ class NearestIntersection < SingletonEndpoint
3
+
4
+ METHOD = "findNearestIntersectionJSON"
5
+ FIND_PARAMS = %w(lat lng)
6
+
7
+ end
8
+ end
9
+
@@ -1,3 +1,3 @@
1
1
  module GeoNamesAPI
2
- VERSION = Gem::Version.new('0.1.2')
2
+ VERSION = Gem::Version.new('0.1.3')
3
3
  end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe GeoNamesAPI::NearestIntersection do
4
+
5
+ describe '::find' do
6
+
7
+ context 'given the latitude and longitude for a point inside the United States' do
8
+
9
+ # Manhattan, Kansas, USA
10
+ let(:latitude) { 39.191253 }
11
+ let(:longitude) { -96.573737 }
12
+
13
+ it 'returns the two street names of the nearest intersection' do
14
+ response = described_class.find(latitude,longitude)
15
+
16
+ response.intersection["street1"].should eq('Bertrand St')
17
+ response.intersection["street2"].should eq('N 11th St')
18
+ end
19
+ end
20
+ end
21
+ end
22
+
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe GeoNamesAPI::Base do
4
4
  describe "retries" do
5
5
  before :each do
6
- GeoNamesAPI.max_sleep_time_between_retries = 0
6
+ GeoNamesAPI.stub(:max_sleep_time_between_retries).and_return(0)
7
7
  @timeout = JSON.load <<-JSON
8
8
  {
9
9
  "status": {
@@ -28,7 +28,7 @@ describe GeoNamesAPI::Base do
28
28
 
29
29
  it "fails when geonames returns timeout errors too many times" do
30
30
  GeoNamesAPI::Hierarchy.stub(:make_request).and_return(@timeout, @timeout, @response)
31
- GeoNamesAPI.retries = 1
31
+ GeoNamesAPI.stub(:retries).and_return(1)
32
32
  proc { GeoNamesAPI::Hierarchy.find(6295630) }.should raise_error GeoNamesAPI::Timeout
33
33
  end
34
34
  end
@@ -11,7 +11,7 @@ RSpec.configure do |config|
11
11
  name = $stdin.gets.chomp
12
12
  GeoNamesAPI.username = name if name.present?
13
13
  end
14
- GeoNamesAPI.logger = Logger.new("test.log")
14
+ GeoNamesAPI.logger = ENV['CI'] ? Logger.new(STDERR) : Logger.new("test.log")
15
15
  GeoNamesAPI.retries = 10
16
16
  GeoNamesAPI.max_sleep_time_between_retries = 60
17
17
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geonames_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
5
- prerelease:
4
+ version: 0.1.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sean Devine
@@ -10,86 +9,76 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-01-03 00:00:00.000000000 Z
12
+ date: 2014-03-19 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: activesupport
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - ">="
21
19
  - !ruby/object:Gem::Version
22
20
  version: '0'
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ! '>='
25
+ - - ">="
29
26
  - !ruby/object:Gem::Version
30
27
  version: '0'
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: tzinfo
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ! '>='
32
+ - - ">="
37
33
  - !ruby/object:Gem::Version
38
34
  version: '0'
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ! '>='
39
+ - - ">="
45
40
  - !ruby/object:Gem::Version
46
41
  version: '0'
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rubyzip
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
46
+ - - ">="
53
47
  - !ruby/object:Gem::Version
54
48
  version: '0'
55
49
  type: :runtime
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
- - - ! '>='
53
+ - - ">="
61
54
  - !ruby/object:Gem::Version
62
55
  version: '0'
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: rake
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ! '>='
60
+ - - ">="
69
61
  - !ruby/object:Gem::Version
70
62
  version: '0'
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ! '>='
67
+ - - ">="
77
68
  - !ruby/object:Gem::Version
78
69
  version: '0'
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: rspec
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
- - - ! '>='
74
+ - - ">="
85
75
  - !ruby/object:Gem::Version
86
76
  version: '0'
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
- - - ! '>='
81
+ - - ">="
93
82
  - !ruby/object:Gem::Version
94
83
  version: '0'
95
84
  description: Simple ruby client for the GeoNames API to get free and easy geographic
@@ -101,8 +90,8 @@ executables: []
101
90
  extensions: []
102
91
  extra_rdoc_files: []
103
92
  files:
104
- - .gitignore
105
- - .travis.yml
93
+ - ".gitignore"
94
+ - ".travis.yml"
106
95
  - CHANGELOG.md
107
96
  - Gemfile
108
97
  - LICENSE.txt
@@ -125,6 +114,7 @@ files:
125
114
  - lib/geonames_api/hierarchy.rb
126
115
  - lib/geonames_api/list_endpoint.rb
127
116
  - lib/geonames_api/nearby_postal_code.rb
117
+ - lib/geonames_api/nearest_intersection.rb
128
118
  - lib/geonames_api/neighbourhood.rb
129
119
  - lib/geonames_api/place.rb
130
120
  - lib/geonames_api/place_name.rb
@@ -140,6 +130,7 @@ files:
140
130
  - spec/geonames_api/country_spec.rb
141
131
  - spec/geonames_api/country_subdivision_spec.rb
142
132
  - spec/geonames_api/hierarchy_spec.rb
133
+ - spec/geonames_api/nearest_intersection_spec.rb
143
134
  - spec/geonames_api/neighbourhood_spec.rb
144
135
  - spec/geonames_api/place_name_spec.rb
145
136
  - spec/geonames_api/place_search_spec.rb
@@ -150,27 +141,26 @@ files:
150
141
  - spec/spec_helper.rb
151
142
  homepage: https://github.com/buytruckload/geonames_api
152
143
  licenses: []
144
+ metadata: {}
153
145
  post_install_message:
154
146
  rdoc_options: []
155
147
  require_paths:
156
148
  - lib
157
149
  required_ruby_version: !ruby/object:Gem::Requirement
158
- none: false
159
150
  requirements:
160
- - - ! '>='
151
+ - - ">="
161
152
  - !ruby/object:Gem::Version
162
153
  version: '0'
163
154
  required_rubygems_version: !ruby/object:Gem::Requirement
164
- none: false
165
155
  requirements:
166
- - - ! '>='
156
+ - - ">="
167
157
  - !ruby/object:Gem::Version
168
158
  version: '0'
169
159
  requirements: []
170
160
  rubyforge_project:
171
- rubygems_version: 1.8.23
161
+ rubygems_version: 2.2.2
172
162
  signing_key:
173
- specification_version: 3
163
+ specification_version: 4
174
164
  summary: This is a lightweight client for the GeoNames API. Huge thanks to them for
175
165
  such a great service! There are many GeoNames API clients. BUT, most are rewritten
176
166
  versions of a Java API whose interface is a little funny =| This is a simplified
@@ -180,6 +170,7 @@ test_files:
180
170
  - spec/geonames_api/country_spec.rb
181
171
  - spec/geonames_api/country_subdivision_spec.rb
182
172
  - spec/geonames_api/hierarchy_spec.rb
173
+ - spec/geonames_api/nearest_intersection_spec.rb
183
174
  - spec/geonames_api/neighbourhood_spec.rb
184
175
  - spec/geonames_api/place_name_spec.rb
185
176
  - spec/geonames_api/place_search_spec.rb
@@ -188,4 +179,3 @@ test_files:
188
179
  - spec/geonames_api/street_spec.rb
189
180
  - spec/geonames_api/weather_icao_spec.rb
190
181
  - spec/spec_helper.rb
191
- has_rdoc: