google_maps_geocoder 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/google_maps_geocoder.gemspec +11 -11
- data/lib/google_maps_geocoder.rb +9 -4
- data/spec/lib/google_maps_geocoder_spec.rb +4 -4
- metadata +7 -6
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
7
|
+
s.name = "google_maps_geocoder"
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Roderick Monje"]
|
12
|
+
s.date = "2012-09-19"
|
13
|
+
s.description = "Geocode a location without worrying about parsing Google Maps' response. GoogleMapsGeocoder wraps it in a plain-old Ruby object."
|
14
|
+
s.email = "rod@seologic.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
@@ -28,11 +28,11 @@ Gem::Specification.new do |s|
|
|
28
28
|
"spec/lib/google_maps_geocoder_spec.rb",
|
29
29
|
"spec/spec_helper.rb"
|
30
30
|
]
|
31
|
-
s.homepage =
|
32
|
-
s.licenses = [
|
33
|
-
s.require_paths = [
|
34
|
-
s.rubygems_version =
|
35
|
-
s.summary =
|
31
|
+
s.homepage = "http://github.com/ivanoblomov/google_maps_geocoder"
|
32
|
+
s.licenses = ["MIT"]
|
33
|
+
s.require_paths = ["lib"]
|
34
|
+
s.rubygems_version = "1.8.11"
|
35
|
+
s.summary = "A simple PORO wrapper for geocoding with Google Maps."
|
36
36
|
|
37
37
|
if s.respond_to? :specification_version then
|
38
38
|
s.specification_version = 3
|
data/lib/google_maps_geocoder.rb
CHANGED
@@ -24,10 +24,15 @@ class GoogleMapsGeocoder
|
|
24
24
|
# white_house = GoogleMapsGeocoder.new('1600 Pennsylvania Washington')
|
25
25
|
# white_house.formatted_address
|
26
26
|
# => "1600 Pennsylvania Ave NW, Washington D.C., DC 20500, USA"
|
27
|
-
def initialize
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
def initialize data
|
28
|
+
if data.is_a? String
|
29
|
+
response = Net::HTTP.get_response(URI.parse("http://maps.googleapis.com/maps/api/geocode/json?address=#{Rack::Utils.escape(data)}&sensor=false"))
|
30
|
+
@json = ActiveSupport::JSON.decode(response.body)
|
31
|
+
raise "Geocoding \"#{address}\" exceeded query limit! Google returned...\n#{@json.inspect}" if @json.blank? || @json['status'] != 'OK'
|
32
|
+
else
|
33
|
+
@json = data
|
34
|
+
address = data['formatted_address']
|
35
|
+
end
|
31
36
|
|
32
37
|
logger = Logger.new(STDERR)
|
33
38
|
logger.info('GoogleMapsGeocoder') { "Geocoded \"#{address}\" and Google returned...\n#{@json.inspect}" }
|
@@ -27,10 +27,10 @@ describe GoogleMapsGeocoder do
|
|
27
27
|
specify { subject.county.should == 'Kings' }
|
28
28
|
specify { subject.state_long_name.should == 'New York' }
|
29
29
|
specify { subject.state_short_name.should == 'NY' }
|
30
|
-
specify { subject.postal_code.should
|
30
|
+
specify { subject.postal_code.should =~ /1121[0-9]/ }
|
31
31
|
specify { subject.country_short_name.should == 'US' }
|
32
32
|
specify { subject.country_long_name.should == 'United States' }
|
33
|
-
specify { subject.formatted_address.should
|
33
|
+
specify { subject.formatted_address.should =~ /837 Union St, Brooklyn, NY 1121[0-9], USA/ }
|
34
34
|
end
|
35
35
|
|
36
36
|
context 'coordinates' do
|
@@ -48,10 +48,10 @@ describe GoogleMapsGeocoder do
|
|
48
48
|
specify { subject.city.should == 'Washington' }
|
49
49
|
specify { subject.state_long_name.should == 'District of Columbia' }
|
50
50
|
specify { subject.state_short_name.should == 'DC' }
|
51
|
-
specify { subject.postal_code.should
|
51
|
+
specify { subject.postal_code.should =~ /2050[0-9]/ }
|
52
52
|
specify { subject.country_short_name.should == 'US' }
|
53
53
|
specify { subject.country_long_name.should == 'United States' }
|
54
|
-
specify { subject.formatted_address.should
|
54
|
+
specify { subject.formatted_address.should =~ /1600 Pennsylvania Ave NW, Washington, DC 2050[0-9], USA/ }
|
55
55
|
end
|
56
56
|
|
57
57
|
context 'coordinates' do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_maps_geocoder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Roderick Monje
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-09-19 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activesupport
|
@@ -136,9 +136,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
136
|
requirements: []
|
137
137
|
|
138
138
|
rubyforge_project:
|
139
|
-
rubygems_version: 1.8.
|
139
|
+
rubygems_version: 1.8.11
|
140
140
|
signing_key:
|
141
141
|
specification_version: 3
|
142
142
|
summary: A simple PORO wrapper for geocoding with Google Maps.
|
143
143
|
test_files: []
|
144
144
|
|
145
|
+
has_rdoc:
|