google-geocode 1.0.0 → 1.1.0

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/Rakefile CHANGED
@@ -8,7 +8,7 @@ $VERBOSE = nil
8
8
 
9
9
  spec = Gem::Specification.new do |s|
10
10
  s.name = 'google-geocode'
11
- s.version = '1.0.0'
11
+ s.version = '1.1.0'
12
12
  s.summary = 'Google Geocoder API Library'
13
13
  s.description = 'Map addresses to latitude and longitude with Google\'s Geocoder.'
14
14
  s.author = 'Eric Hodel'
@@ -64,11 +64,19 @@ class GoogleGeocode
64
64
 
65
65
  status = obj.elements['/kml/Response/Status/code'].text.to_i
66
66
  case status
67
- when 200 # ignore, ok
68
- when 602
69
- raise AddressError, 'invalid address'
70
- when 610
67
+ when 200 then # ignore, ok
68
+ when 500 then
69
+ raise Error, 'server error'
70
+ when 601 then
71
+ raise AddressError, 'missing address'
72
+ when 602 then
73
+ raise AddressError, 'unknown address'
74
+ when 603 then
75
+ raise AddressError, 'unavailable address'
76
+ when 610 then
71
77
  raise KeyError, 'invalid key'
78
+ when 620 then
79
+ raise KeyError, 'too many queries'
72
80
  else
73
81
  raise Error, "unknown error #{status}"
74
82
  end
@@ -44,7 +44,59 @@ class TestGoogleGeocode < Test::Unit::TestCase
44
44
  flunk 'Error expected'
45
45
  end
46
46
 
47
- def test_locate_bad_address
47
+ def test_locate_missing_address
48
+ URI::HTTP.responses << <<-EOF.strip
49
+ <?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.0"><Response><name>1600</name><Status><code>601</code><request>geocode</request></Status></Response></kml>
50
+ EOF
51
+
52
+ @gg.locate 'x'
53
+
54
+ rescue GoogleGeocode::AddressError => e
55
+ assert_equal 'missing address', e.message
56
+ else
57
+ flunk 'Error expected'
58
+ end
59
+
60
+ def test_locate_server_error
61
+ URI::HTTP.responses << <<-EOF.strip
62
+ <?xml version='1.0' encoding='UTF-8'?><kml xmlns='http://earth.google.com/kml/2.0'><Response><name>1600 Amphitheater Pkwy, Mountain View, CA</name><Status><code>500</code><request>geocode</request></Status></Response></kml>
63
+ EOF
64
+
65
+ @gg.locate 'x'
66
+
67
+ rescue GoogleGeocode::Error => e
68
+ assert_equal 'server error', e.message
69
+ else
70
+ flunk 'Error expected'
71
+ end
72
+
73
+ def test_locate_too_many_queries
74
+ URI::HTTP.responses << <<-EOF.strip
75
+ <?xml version='1.0' encoding='UTF-8'?><kml xmlns='http://earth.google.com/kml/2.0'><Response><name>1600 Amphitheater Pkwy, Mountain View, CA</name><Status><code>620</code><request>geocode</request></Status></Response></kml>
76
+ EOF
77
+
78
+ @gg.locate 'x'
79
+
80
+ rescue GoogleGeocode::KeyError => e
81
+ assert_equal 'too many queries', e.message
82
+ else
83
+ flunk 'Error expected'
84
+ end
85
+
86
+ def test_locate_unavailable_address
87
+ URI::HTTP.responses << <<-EOF.strip
88
+ <?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.0"><Response><name>42-44 Hanway Street, London</name><Status><code>603</code><request>geocode</request></Status></Response></kml>
89
+ EOF
90
+
91
+ @gg.locate 'x'
92
+
93
+ rescue GoogleGeocode::AddressError => e
94
+ assert_equal 'unavailable address', e.message
95
+ else
96
+ flunk 'Error expected'
97
+ end
98
+
99
+ def test_locate_unknown_address
48
100
  URI::HTTP.responses << <<-EOF.strip
49
101
  <?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.0"><Response><name>1600</name><Status><code>602</code><request>geocode</request></Status></Response></kml>
50
102
  EOF
@@ -52,7 +104,7 @@ class TestGoogleGeocode < Test::Unit::TestCase
52
104
  @gg.locate 'x'
53
105
 
54
106
  rescue GoogleGeocode::AddressError => e
55
- assert_equal 'invalid address', e.message
107
+ assert_equal 'unknown address', e.message
56
108
  else
57
109
  flunk 'Error expected'
58
110
  end
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.11.15
3
3
  specification_version: 1
4
4
  name: google-geocode
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.0
6
+ version: 1.1.0
7
7
  date: 2006-06-12 00:00:00 -07:00
8
8
  summary: Google Geocoder API Library
9
9
  require_paths: