geokit 1.10.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.hound.yml +2 -0
  4. data/.rubocop.yml +358 -0
  5. data/.travis.yml +4 -4
  6. data/CHANGELOG.md +16 -0
  7. data/Gemfile +3 -3
  8. data/README.markdown +19 -4
  9. data/Rakefile +11 -16
  10. data/fixtures/keys.yml +9 -0
  11. data/fixtures/vcr_cassettes/google_postal_town.yml +117 -0
  12. data/fixtures/vcr_cassettes/mapbox_forward_geocode.yml +30 -30
  13. data/fixtures/vcr_cassettes/mapbox_forward_geocode_city_only.yml +25 -25
  14. data/fixtures/vcr_cassettes/mapbox_forward_geocode_state_only.yml +71 -0
  15. data/fixtures/vcr_cassettes/mapbox_reverse_geocode.yml +25 -25
  16. data/fixtures/vcr_cassettes/test_component_filtering_off.yml +390 -0
  17. data/fixtures/vcr_cassettes/test_component_filtering_on.yml +164 -0
  18. data/fixtures/vcr_cassettes/test_component_filtering_on_without_filter.yml +404 -0
  19. data/geokit.gemspec +24 -23
  20. data/lib/geokit.rb +7 -7
  21. data/lib/geokit/core_ext.rb +1 -1
  22. data/lib/geokit/geo_loc.rb +25 -19
  23. data/lib/geokit/geocoders.rb +21 -30
  24. data/lib/geokit/geocoders/bing.rb +5 -4
  25. data/lib/geokit/geocoders/ca_geocoder.rb +10 -11
  26. data/lib/geokit/geocoders/fcc.rb +9 -9
  27. data/lib/geokit/geocoders/free_geo_ip.rb +8 -8
  28. data/lib/geokit/geocoders/geo_plugin.rb +7 -7
  29. data/lib/geokit/geocoders/geobytes.rb +10 -10
  30. data/lib/geokit/geocoders/geocodio.rb +14 -14
  31. data/lib/geokit/geocoders/geonames.rb +12 -12
  32. data/lib/geokit/geocoders/google.rb +89 -61
  33. data/lib/geokit/geocoders/ip.rb +9 -14
  34. data/lib/geokit/geocoders/mapbox.rb +30 -30
  35. data/lib/geokit/geocoders/mapquest.rb +12 -12
  36. data/lib/geokit/geocoders/maxmind.rb +1 -1
  37. data/lib/geokit/geocoders/opencage.rb +19 -19
  38. data/lib/geokit/geocoders/openstreetmap.rb +21 -19
  39. data/lib/geokit/geocoders/ripe.rb +7 -7
  40. data/lib/geokit/geocoders/us_geocoder.rb +5 -5
  41. data/lib/geokit/geocoders/yahoo.rb +46 -46
  42. data/lib/geokit/geocoders/yandex.rb +18 -17
  43. data/lib/geokit/inflectors.rb +5 -5
  44. data/lib/geokit/lat_lng.rb +5 -4
  45. data/lib/geokit/multi_geocoder.rb +4 -2
  46. data/lib/geokit/net_adapter/net_http.rb +3 -2
  47. data/lib/geokit/net_adapter/typhoeus.rb +2 -1
  48. data/lib/geokit/version.rb +1 -1
  49. data/test/coverage_loader.rb +25 -0
  50. data/test/helper.rb +18 -87
  51. data/test/test_base_geocoder.rb +44 -11
  52. data/test/test_bing_geocoder.rb +40 -48
  53. data/test/test_bounds.rb +1 -1
  54. data/test/test_ca_geocoder.rb +15 -15
  55. data/test/test_fcc_geocoder.rb +8 -9
  56. data/test/test_free_geo_ip_geocoder.rb +8 -10
  57. data/test/test_geo_plugin_geocoder.rb +21 -22
  58. data/test/test_geobytes_geocoder.rb +9 -11
  59. data/test/test_geocodio_geocoder.rb +12 -14
  60. data/test/test_geoloc.rb +48 -49
  61. data/test/test_geonames_geocoder.rb +19 -23
  62. data/test/test_google_geocoder.rb +197 -189
  63. data/test/test_inflector.rb +7 -7
  64. data/test/test_ipgeocoder.rb +32 -31
  65. data/test/test_latlng.rb +28 -28
  66. data/test/test_map_quest.rb +23 -27
  67. data/test/test_mapbox_geocoder.rb +38 -28
  68. data/test/test_mappable.rb +2 -2
  69. data/test/test_maxmind_geocoder.rb +16 -16
  70. data/test/test_multi_geocoder.rb +5 -5
  71. data/test/test_multi_ip_geocoder.rb +3 -3
  72. data/test/test_net_adapter.rb +4 -4
  73. data/test/test_opencage_geocoder.rb +58 -67
  74. data/test/test_openstreetmap_geocoder.rb +67 -65
  75. data/test/test_polygon.rb +4 -22
  76. data/test/test_ripe_geocoder.rb +21 -26
  77. data/test/test_us_geocoder.rb +21 -21
  78. data/test/test_useragent.rb +46 -0
  79. data/test/test_yahoo_geocoder.rb +35 -47
  80. data/test/test_yandex_geocoder.rb +29 -27
  81. data/test/vcr_loader.rb +18 -0
  82. metadata +20 -6
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "helper")
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
2
 
3
3
  class BoundsTest < Test::Unit::TestCase #:nodoc: all
4
4
  def setup
@@ -1,6 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "helper")
2
-
3
- Geokit::Geocoders::CaGeocoder.key = "SOMEKEYVALUE"
1
+ require File.join(File.dirname(__FILE__), 'helper')
4
2
 
5
3
  class CaGeocoderTest < BaseGeocoderTest #:nodoc: all
6
4
  CA_SUCCESS = <<-EOF
@@ -12,32 +10,34 @@ class CaGeocoderTest < BaseGeocoderTest #:nodoc: all
12
10
  EOF
13
11
 
14
12
  def setup
15
- @ca_full_hash = { street_address: "2105 West 32nd Avenue",
16
- city: "Vancouver", province: "BC", state: "BC" }
17
- @ca_full_txt = "2105 West 32nd Avenue Vancouver BC"
13
+ geocoder_class.key = 'SOMEKEYVALUE'
14
+ @ca_full_hash = { street_address: '2105 West 32nd Avenue',
15
+ city: 'Vancouver', state: 'BC' }
16
+ @ca_full_txt = '2105 West 32nd Avenue Vancouver BC'
18
17
  end
19
18
 
20
19
  def test_geocoder_with_geo_loc_with_account
21
20
  response = MockSuccess.new
22
21
  response.expects(:body).returns(CA_SUCCESS)
23
- url = "http://geocoder.ca/?locate=2105+West+32nd+Avenue+Vancouver+BC&auth=SOMEKEYVALUE&geoit=xml"
24
- Geokit::Geocoders::CaGeocoder.expects(:call_geocoder_service).with(url).returns(response)
25
- verify(Geokit::Geocoders::CaGeocoder.geocode(@ca_full_txt))
22
+ url = 'http://geocoder.ca/?locate=2105+West+32nd+Avenue+Vancouver+BC&auth=SOMEKEYVALUE&geoit=xml'
23
+ geocoder_class.expects(:call_geocoder_service).with(url).returns(response)
24
+ verify(geocode(@ca_full_txt))
26
25
  end
27
26
 
28
27
  def test_service_unavailable
29
28
  response = MockFailure.new
30
- url = "http://geocoder.ca/?locate=2105+West+32nd+Avenue+Vancouver+BC&auth=SOMEKEYVALUE&geoit=xml"
31
- Geokit::Geocoders::CaGeocoder.expects(:call_geocoder_service).with(url).returns(response)
32
- assert !Geokit::Geocoders::CaGeocoder.geocode(@ca_full_txt).success
29
+ url = 'http://geocoder.ca/?locate=2105+West+32nd+Avenue+Vancouver+BC&auth=SOMEKEYVALUE&geoit=xml'
30
+ geocoder_class.expects(:call_geocoder_service).with(url).returns(response)
31
+ assert !geocode(@ca_full_txt).success
33
32
  end
34
33
 
35
34
  private
36
35
 
37
36
  def verify(location)
38
- assert_equal "BC", location.province
39
- assert_equal "Vancouver", location.city
40
- assert_equal "49.243086,-123.153684", location.ll
37
+ assert_equal 'BC', location.state
38
+ assert_equal 'BC', location.province # alias
39
+ assert_equal 'Vancouver', location.city
40
+ assert_equal '49.243086,-123.153684', location.ll
41
41
  assert !location.is_us?
42
42
  end
43
43
  end
@@ -1,23 +1,22 @@
1
- require File.join(File.dirname(__FILE__), "helper")
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
2
 
3
3
  class FCCGeocoderTest < BaseGeocoderTest #:nodoc: all
4
4
  def setup
5
5
  super
6
6
  @la = Geokit::LatLng.new(34.05, -118.25)
7
+ @base_url = 'https://data.fcc.gov/api/block/find'
7
8
  end
8
9
 
9
10
  def assert_url(expected_url)
10
- assert_equal expected_url, TestHelper.get_last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, "").gsub("%20", "+")
11
+ assert_equal expected_url, TestHelper.last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, '').gsub('%20', '+')
11
12
  end
12
13
 
13
14
  def test_fcc_reverse_geocode
14
- VCR.use_cassette("fcc_reverse_geocode") do
15
- url = "https://data.fcc.gov/api/block/find?format=json&latitude=34.05&longitude=-118.25"
16
- res = Geokit::Geocoders::FCCGeocoder.reverse_geocode(@la)
15
+ url = "#{@base_url}?format=json&latitude=34.05&longitude=-118.25"
16
+ res = reverse_geocode(@la, :fcc_reverse_geocode)
17
17
  assert_url url
18
- assert_equal res.country_code, "US"
19
- assert_equal res.state, "CA"
20
- assert_equal res.district, "Los Angeles"
21
- end
18
+ assert_equal res.country_code, 'US'
19
+ assert_equal res.state, 'CA'
20
+ assert_equal res.district, 'Los Angeles'
22
21
  end
23
22
  end
@@ -1,23 +1,21 @@
1
- require File.join(File.dirname(__FILE__), "helper")
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
2
 
3
3
  class FreeGeoIpGeocoderTest < BaseGeocoderTest #:nodoc: all
4
4
  def setup
5
5
  super
6
- @ip = "74.125.237.209"
6
+ @ip = '74.125.237.209'
7
7
  end
8
8
 
9
9
  def assert_url(expected_url)
10
- assert_equal expected_url, TestHelper.get_last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, "").gsub("%20", "+")
10
+ assert_equal expected_url, TestHelper.last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, '').gsub('%20', '+')
11
11
  end
12
12
 
13
13
  def test_free_geo_ip_geocode
14
- VCR.use_cassette("free_geo_ip_geocode") do
15
- url = "http://freegeoip.net/xml/#{@ip}"
16
- res = Geokit::Geocoders::FreeGeoIpGeocoder.geocode(@ip)
14
+ url = "http://freegeoip.net/xml/#{@ip}"
15
+ res = geocode(@ip, :free_geo_ip_geocode)
17
16
  assert_url url
18
- assert_equal res.city, "Mountain View"
19
- assert_equal res.state, "CA"
20
- assert_equal res.country_code, "US"
21
- end
17
+ assert_equal res.city, 'Mountain View'
18
+ assert_equal res.state, 'CA'
19
+ assert_equal res.country_code, 'US'
22
20
  end
23
21
  end
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "helper")
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
2
 
3
3
  class GeoPluginGeocoderTest < BaseGeocoderTest #:nodoc: all
4
4
  IP_SUCCESS = <<-EOF
@@ -21,52 +21,51 @@ class GeoPluginGeocoderTest < BaseGeocoderTest #:nodoc: all
21
21
 
22
22
  def setup
23
23
  super
24
- @ip = "74.125.237.209"
25
- @success.provider = "geo_plugin"
24
+ @ip = '74.125.237.209'
25
+ @success.provider = 'geo_plugin'
26
+ @base_url = 'http://www.geoplugin.net/xml.gp'
26
27
  end
27
28
 
28
29
  def assert_url(expected_url)
29
- assert_equal expected_url, TestHelper.get_last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, "").gsub("%20", "+")
30
+ assert_equal expected_url, TestHelper.last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, '').gsub('%20', '+')
30
31
  end
31
32
 
32
33
  def test_geo_plugin_geocode
33
- VCR.use_cassette("geo_plugin_geocode") do
34
- url = "http://www.geoplugin.net/xml.gp?ip=#{@ip}"
35
- res = Geokit::Geocoders::GeoPluginGeocoder.geocode(@ip)
34
+ url = "#{@base_url}?ip=#{@ip}"
35
+ res = geocode(@ip, :geo_plugin_geocode)
36
36
  assert_url url
37
- assert_equal res.city, "Mountain View"
38
- assert_equal res.state, "CA"
39
- assert_equal res.country_code, "US"
40
- end
37
+ assert_equal res.city, 'Mountain View'
38
+ assert_equal res.state, 'CA'
39
+ assert_equal res.country_code, 'US'
41
40
  end
42
41
 
43
42
  def test_successful_lookup
44
43
  success = MockSuccess.new
45
44
  success.expects(:body).returns(IP_SUCCESS)
46
- url = "http://www.geoplugin.net/xml.gp?ip=200.150.38.66"
47
- Geokit::Geocoders::GeoPluginGeocoder.expects(:call_geocoder_service).with(url).returns(success)
48
- location = Geokit::Geocoders::GeoPluginGeocoder.geocode("200.150.38.66")
45
+ url = "#{@base_url}?ip=200.150.38.66"
46
+ geocoder_class.expects(:call_geocoder_service).with(url).returns(success)
47
+ location = geocode('200.150.38.66')
49
48
  assert_not_nil location
50
49
  assert_equal(-19.916700, location.lat)
51
50
  assert_equal(-43.933300, location.lng)
52
- assert_equal "Belo Horizonte", location.city
53
- assert_equal "Minas Gerais", location.state
54
- assert_equal "BR", location.country_code
55
- assert_equal "geo_plugin", location.provider
51
+ assert_equal 'Belo Horizonte', location.city
52
+ assert_equal 'Minas Gerais', location.state
53
+ assert_equal 'BR', location.country_code
54
+ assert_equal 'geo_plugin', location.provider
56
55
  assert location.success?
57
56
  end
58
57
 
59
58
  def test_invalid_ip
60
- location = Geokit::Geocoders::GeoPluginGeocoder.geocode("pixrum")
59
+ location = geocode('pixrum')
61
60
  assert_not_nil location
62
61
  assert !location.success?
63
62
  end
64
63
 
65
64
  def test_service_unavailable
66
65
  failure = MockFailure.new
67
- url = "http://www.geoplugin.net/xml.gp?ip=69.10.10.10"
68
- Geokit::Geocoders::GeoPluginGeocoder.expects(:call_geocoder_service).with(url).returns(failure)
69
- location = Geokit::Geocoders::GeoPluginGeocoder.geocode("69.10.10.10")
66
+ url = "#{@base_url}?ip=69.10.10.10"
67
+ geocoder_class.expects(:call_geocoder_service).with(url).returns(failure)
68
+ location = geocode('69.10.10.10')
70
69
  assert_not_nil location
71
70
  assert !location.success?
72
71
  end
@@ -1,22 +1,20 @@
1
- require File.join(File.dirname(__FILE__), "helper")
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
2
  class GeobytesGeocoderTest < BaseGeocoderTest #:nodoc: all
3
3
  def setup
4
4
  super
5
- @ip = "12.12.12.12"
5
+ @ip = '12.12.12.12'
6
6
  end
7
7
 
8
8
  def assert_url(expected_url)
9
- assert_equal expected_url, TestHelper.get_last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, "").gsub("%20", "+")
9
+ assert_equal expected_url, TestHelper.last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, '').gsub('%20', '+')
10
10
  end
11
11
 
12
12
  def test_geobytes_geocoder
13
- VCR.use_cassette("geobytes_geocode") do
14
- url = "http://getcitydetails.geobytes.com/GetCityDetails?fqcn=#{@ip}"
15
- res = Geokit::Geocoders::GeobytesGeocoder.geocode(@ip)
16
- assert_url url
17
- assert_equal res.city, "New York"
18
- assert_equal res.state, "NY"
19
- assert_equal res.country_code, "US"
20
- end
13
+ url = "http://getcitydetails.geobytes.com/GetCityDetails?fqcn=#{@ip}"
14
+ res = geocode(@ip, :geobytes_geocode)
15
+ assert_url url
16
+ assert_equal res.city, 'New York'
17
+ assert_equal res.state, 'NY'
18
+ assert_equal res.country_code, 'US'
21
19
  end
22
20
  end
@@ -1,32 +1,30 @@
1
- require File.join(File.dirname(__FILE__), "helper")
2
-
3
- Geokit::Geocoders::GeocodioGeocoder.key = "723d41115152d224fd74727df34727c444537f7"
1
+ require File.join(File.dirname(__FILE__), 'helper')
4
2
 
5
3
  class GeocodioGeocoderTest < BaseGeocoderTest #:nodoc: all
6
4
  def setup
7
5
  super
8
- @full_address = "1 Infinite Loop, Cupertino, CA 95014"
9
- @second_address = "300 Brannan St, San Francisco, CA 94107"
6
+ @full_address = '1 Infinite Loop, Cupertino, CA 95014'
7
+ @second_address = '300 Brannan St, San Francisco, CA 94107'
8
+
9
+ geocoder_class.key = @keys['geocodio']['key']
10
10
  end
11
11
 
12
12
  def assert_url(expected_url)
13
- assert_equal expected_url, TestHelper.get_last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, "").gsub("%20", "+")
13
+ assert_equal expected_url, TestHelper.last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, '').gsub('%20', '+')
14
14
  end
15
15
 
16
16
  def test_geocodio_geocode
17
- VCR.use_cassette("geocodio_geocode") do
18
- res = Geokit::Geocoders::GeocodioGeocoder.geocode(@full_address)
19
- url = "http://api.geocod.io/v1/geocode?q=#{Geokit::Inflector.url_escape(@full_address)}&api_key=723d41115152d224fd74727df34727c444537f7"
17
+ res = geocode(@full_address, :geocodio_geocode)
18
+ url = "http://api.geocod.io/v1/geocode?q=#{escape(@full_address)}&api_key=723d41115152d224fd74727df34727c444537f7"
20
19
 
21
- assert_url url
20
+ assert_url url
22
21
 
23
- verify(res)
24
- end
22
+ verify(res)
25
23
  end
26
24
 
27
25
  def verify(location)
28
- assert_equal location.city, "Cupertino"
29
- assert_equal location.zip, "95014"
26
+ assert_equal location.city, 'Cupertino'
27
+ assert_equal location.zip, '95014'
30
28
  assert_equal location.lat, 37.331669
31
29
  assert_equal location.lng, -122.03074
32
30
  end
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "helper")
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
2
 
3
3
  class GeoLocTest < Test::Unit::TestCase #:nodoc: all
4
4
  def setup
@@ -7,7 +7,7 @@ class GeoLocTest < Test::Unit::TestCase #:nodoc: all
7
7
 
8
8
  def test_is_us
9
9
  assert !@loc.is_us?
10
- @loc.country_code = "US"
10
+ @loc.country_code = 'US'
11
11
  assert @loc.is_us?
12
12
  end
13
13
 
@@ -20,44 +20,44 @@ class GeoLocTest < Test::Unit::TestCase #:nodoc: all
20
20
  end
21
21
 
22
22
  def test_street_number
23
- @loc.street_address = "123 Spear St."
24
- assert_equal "123", @loc.street_number
23
+ @loc.street_address = '123 Spear St.'
24
+ assert_equal '123', @loc.street_number
25
25
  end
26
26
 
27
27
  def test_street_name
28
- @loc.street_address = "123 Spear St."
29
- assert_equal "Spear St.", @loc.street_name
28
+ @loc.street_address = '123 Spear St.'
29
+ assert_equal 'Spear St.', @loc.street_name
30
30
  end
31
31
 
32
32
  def test_city
33
- @loc.city = "san francisco"
34
- assert_equal "San Francisco", @loc.city
33
+ @loc.city = 'san francisco'
34
+ assert_equal 'San Francisco', @loc.city
35
35
  end
36
36
 
37
37
  def test_full_address
38
- @loc.city = "San Francisco"
39
- @loc.state = "CA"
40
- @loc.zip = "94105"
41
- @loc.country_code = "US"
42
- assert_equal "San Francisco, CA, 94105, US", @loc.full_address
43
- @loc.full_address = "Irving, TX, 75063, US"
44
- assert_equal "Irving, TX, 75063, US", @loc.full_address
38
+ @loc.city = 'San Francisco'
39
+ @loc.state = 'CA'
40
+ @loc.zip = '94105'
41
+ @loc.country_code = 'US'
42
+ assert_equal 'San Francisco, CA, 94105, US', @loc.full_address
43
+ @loc.full_address = 'Irving, TX, 75063, US'
44
+ assert_equal 'Irving, TX, 75063, US', @loc.full_address
45
45
  end
46
46
 
47
47
  def test_formatted_address
48
48
  @loc.formatted_address = nil
49
- @loc.full_address = "Irving, TX, 75063, US"
50
- assert_equal "Irving, TX, 75063, US", @loc.formatted_address
51
- @loc.formatted_address = "San Francisco, CA, 94105, US"
52
- @loc.full_address = "Irving, TX, 75063, US"
53
- assert_equal "San Francisco, CA, 94105, US", @loc.formatted_address
49
+ @loc.full_address = 'Irving, TX, 75063, US'
50
+ assert_equal 'Irving, TX, 75063, US', @loc.formatted_address
51
+ @loc.formatted_address = 'San Francisco, CA, 94105, US'
52
+ @loc.full_address = 'Irving, TX, 75063, US'
53
+ assert_equal 'San Francisco, CA, 94105, US', @loc.formatted_address
54
54
  end
55
55
 
56
56
  def test_hash
57
- @loc.city = "San Francisco"
58
- @loc.state = "CA"
59
- @loc.zip = "94105"
60
- @loc.country_code = "US"
57
+ @loc.city = 'San Francisco'
58
+ @loc.state = 'CA'
59
+ @loc.zip = '94105'
60
+ @loc.country_code = 'US'
61
61
  @another = Geokit::GeoLoc.new @loc.to_hash
62
62
  assert_equal @loc, @another
63
63
  end
@@ -67,46 +67,45 @@ class GeoLocTest < Test::Unit::TestCase #:nodoc: all
67
67
  end
68
68
 
69
69
  def test_to_yaml
70
- @loc.city = "San Francisco"
71
- @loc.state_code = "CA"
72
- @loc.zip = "94105"
73
- @loc.country_code = "US"
70
+ @loc.city = 'San Francisco'
71
+ @loc.state_code = 'CA'
72
+ @loc.zip = '94105'
73
+ @loc.country_code = 'US'
74
74
 
75
75
  yaml = YAML.parse(@loc.to_yaml)
76
76
  case yaml.class.to_s
77
- when "YAML::Syck::Map", "Syck::Map"
77
+ when 'YAML::Syck::Map', 'Syck::Map'
78
78
  tag = yaml.type_id
79
79
  children = yaml.value.sort_by { |k, _| k.value }.flatten.map(&:value)
80
- when "Psych::Nodes::Mapping"
80
+ when 'Psych::Nodes::Mapping'
81
81
  tag = yaml.tag
82
82
  children = yaml.children.map(&:value)
83
- when "Psych::Nodes::Document"
83
+ when 'Psych::Nodes::Document'
84
84
  tag = yaml.root.tag
85
85
  children = yaml.root.children.map(&:value)
86
86
  end
87
87
  assert_match(/.*object:Geokit::GeoLoc$/, tag)
88
88
  assert_equal [
89
- "city", "San Francisco",
90
- "country_code", "US",
91
- "full_address", "",
92
- "lat", "",
93
- "lng", "",
94
- "precision", "unknown",
95
- "province", "",
96
- "state", "",
97
- "state_code", "CA",
98
- "state_name", "",
99
- "street_address", "",
100
- "street_name", "",
101
- "street_number", "",
102
- "sub_premise", "",
103
- "success", "false",
104
- "zip", "94105"
89
+ 'city', 'San Francisco',
90
+ 'country_code', 'US',
91
+ 'full_address', '',
92
+ 'lat', '',
93
+ 'lng', '',
94
+ 'precision', 'unknown',
95
+ 'state', '',
96
+ 'state_code', 'CA',
97
+ 'state_name', '',
98
+ 'street_address', '',
99
+ 'street_name', '',
100
+ 'street_number', '',
101
+ 'sub_premise', '',
102
+ 'success', 'false',
103
+ 'zip', '94105'
105
104
  ], children
106
105
  end
107
106
 
108
107
  def test_neighborhood
109
- @loc.neighborhood = "SoMa"
110
- assert_equal @loc.neighborhood, "SoMa"
108
+ @loc.neighborhood = 'SoMa'
109
+ assert_equal @loc.neighborhood, 'SoMa'
111
110
  end
112
111
  end
@@ -1,45 +1,41 @@
1
- require File.join(File.dirname(__FILE__), "helper")
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
2
 
3
3
  class GeonamesGeocoderTest < BaseGeocoderTest #:nodoc: all
4
4
  def setup
5
5
  super
6
- @city = "Adelaide"
7
- Geokit::Geocoders::GeonamesGeocoder.key = "demo"
6
+ @city = 'Adelaide'
7
+ geocoder_class.key = 'demo'
8
8
  end
9
9
 
10
10
  def assert_url(expected_url)
11
- assert_equal expected_url, TestHelper.get_last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, "").gsub("%20", "+")
11
+ assert_equal expected_url, TestHelper.last_url.gsub(/&oauth_[a-z_]+=[a-zA-Z0-9\-. %]+/, '').gsub('%20', '+')
12
12
  end
13
13
 
14
14
  def test_geonames_missing_key
15
- Geokit::Geocoders::GeonamesGeocoder.key = nil
15
+ geocoder_class.key = nil
16
16
  exception = assert_raise(Geokit::Geocoders::GeocodeError) do
17
- Geokit::Geocoders::GeonamesGeocoder.geocode(@city)
17
+ geocode(@city)
18
18
  end
19
- assert_equal("Geonames requires a key to use their service.", exception.message)
19
+ assert_equal('Geonames requires a key to use their service.', exception.message)
20
20
  end
21
21
 
22
22
  def test_geonames_geocode
23
- VCR.use_cassette("geonames_geocode") do
24
- url = "http://api.geonames.org/postalCodeSearch?placename=#{@city}&maxRows=10&username=demo"
25
- res = Geokit::Geocoders::GeonamesGeocoder.geocode(@city)
26
- assert_url url
27
- assert_equal res.country_code, "AU"
28
- assert_equal res.state, "SA"
29
- assert_equal res.state_name, "South Australia"
30
- assert_equal res.state_code, "SA"
31
- assert_equal res.city, "Adelaide"
32
- end
23
+ url = "http://api.geonames.org/postalCodeSearch?placename=#{@city}&maxRows=10&username=demo"
24
+ res = geocode(@city, :geonames_geocode)
25
+ assert_url url
26
+ assert_equal res.country_code, 'AU'
27
+ assert_equal res.state, 'SA'
28
+ assert_equal res.state_name, 'South Australia'
29
+ assert_equal res.state_code, 'SA'
30
+ assert_equal res.city, 'Adelaide'
33
31
  end
34
32
 
35
33
  def test_geonames_geocode_premium
36
34
  # note this test will not actually return results because a valid premium
37
35
  # username is required so we are just testing if the url is correct
38
- Geokit::Geocoders::GeonamesGeocoder.premium = true
39
- VCR.use_cassette("geonames_geocode_premium") do
40
- url = "http://ws.geonames.net/postalCodeSearch?placename=#{@city}&maxRows=10&username=demo"
41
- Geokit::Geocoders::GeonamesGeocoder.geocode(@city)
42
- assert_url url
43
- end
36
+ geocoder_class.premium = true
37
+ url = "http://ws.geonames.net/postalCodeSearch?placename=#{@city}&maxRows=10&username=demo"
38
+ geocode(@city, :geonames_geocode_premium)
39
+ assert_url url
44
40
  end
45
41
  end