geokit 1.10.0 → 1.11.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.
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