bw-geocoder 1.2.5

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 (233) hide show
  1. data/.gitignore +6 -0
  2. data/.travis.yml +31 -0
  3. data/CHANGELOG.md +377 -0
  4. data/LICENSE +20 -0
  5. data/README.md +1041 -0
  6. data/Rakefile +25 -0
  7. data/bin/geocode +5 -0
  8. data/examples/autoexpire_cache_dalli.rb +62 -0
  9. data/examples/autoexpire_cache_redis.rb +28 -0
  10. data/examples/cache_bypass.rb +48 -0
  11. data/gemfiles/Gemfile.mongoid-2.4.x +16 -0
  12. data/lib/generators/geocoder/config/config_generator.rb +14 -0
  13. data/lib/generators/geocoder/config/templates/initializer.rb +21 -0
  14. data/lib/generators/geocoder/maxmind/geolite_city_generator.rb +28 -0
  15. data/lib/generators/geocoder/maxmind/geolite_country_generator.rb +28 -0
  16. data/lib/generators/geocoder/maxmind/templates/migration/geolite_city.rb +30 -0
  17. data/lib/generators/geocoder/maxmind/templates/migration/geolite_country.rb +17 -0
  18. data/lib/geocoder/cache.rb +90 -0
  19. data/lib/geocoder/calculations.rb +428 -0
  20. data/lib/geocoder/cli.rb +121 -0
  21. data/lib/geocoder/configuration.rb +124 -0
  22. data/lib/geocoder/configuration_hash.rb +11 -0
  23. data/lib/geocoder/exceptions.rb +21 -0
  24. data/lib/geocoder/ip_address.rb +21 -0
  25. data/lib/geocoder/lookup.rb +100 -0
  26. data/lib/geocoder/lookups/baidu.rb +55 -0
  27. data/lib/geocoder/lookups/baidu_ip.rb +54 -0
  28. data/lib/geocoder/lookups/base.rb +302 -0
  29. data/lib/geocoder/lookups/bing.rb +59 -0
  30. data/lib/geocoder/lookups/dstk.rb +20 -0
  31. data/lib/geocoder/lookups/esri.rb +48 -0
  32. data/lib/geocoder/lookups/freegeoip.rb +47 -0
  33. data/lib/geocoder/lookups/geocoder_ca.rb +54 -0
  34. data/lib/geocoder/lookups/geocoder_us.rb +39 -0
  35. data/lib/geocoder/lookups/geocodio.rb +42 -0
  36. data/lib/geocoder/lookups/google.rb +67 -0
  37. data/lib/geocoder/lookups/google_places_details.rb +50 -0
  38. data/lib/geocoder/lookups/google_premier.rb +47 -0
  39. data/lib/geocoder/lookups/here.rb +62 -0
  40. data/lib/geocoder/lookups/ip_address_labs.rb +43 -0
  41. data/lib/geocoder/lookups/mapquest.rb +60 -0
  42. data/lib/geocoder/lookups/maxmind.rb +90 -0
  43. data/lib/geocoder/lookups/maxmind_local.rb +58 -0
  44. data/lib/geocoder/lookups/nominatim.rb +52 -0
  45. data/lib/geocoder/lookups/okf.rb +43 -0
  46. data/lib/geocoder/lookups/opencagedata.rb +58 -0
  47. data/lib/geocoder/lookups/ovi.rb +62 -0
  48. data/lib/geocoder/lookups/pointpin.rb +68 -0
  49. data/lib/geocoder/lookups/smarty_streets.rb +45 -0
  50. data/lib/geocoder/lookups/telize.rb +40 -0
  51. data/lib/geocoder/lookups/test.rb +44 -0
  52. data/lib/geocoder/lookups/yahoo.rb +88 -0
  53. data/lib/geocoder/lookups/yandex.rb +54 -0
  54. data/lib/geocoder/models/active_record.rb +50 -0
  55. data/lib/geocoder/models/base.rb +39 -0
  56. data/lib/geocoder/models/mongo_base.rb +64 -0
  57. data/lib/geocoder/models/mongo_mapper.rb +26 -0
  58. data/lib/geocoder/models/mongoid.rb +32 -0
  59. data/lib/geocoder/query.rb +111 -0
  60. data/lib/geocoder/railtie.rb +26 -0
  61. data/lib/geocoder/request.rb +25 -0
  62. data/lib/geocoder/results/baidu.rb +79 -0
  63. data/lib/geocoder/results/baidu_ip.rb +62 -0
  64. data/lib/geocoder/results/base.rb +67 -0
  65. data/lib/geocoder/results/bing.rb +48 -0
  66. data/lib/geocoder/results/dstk.rb +6 -0
  67. data/lib/geocoder/results/esri.rb +51 -0
  68. data/lib/geocoder/results/freegeoip.rb +45 -0
  69. data/lib/geocoder/results/geocoder_ca.rb +60 -0
  70. data/lib/geocoder/results/geocoder_us.rb +39 -0
  71. data/lib/geocoder/results/geocodio.rb +66 -0
  72. data/lib/geocoder/results/google.rb +124 -0
  73. data/lib/geocoder/results/google_places_details.rb +35 -0
  74. data/lib/geocoder/results/google_premier.rb +6 -0
  75. data/lib/geocoder/results/here.rb +62 -0
  76. data/lib/geocoder/results/ip_address_labs.rb +78 -0
  77. data/lib/geocoder/results/mapquest.rb +51 -0
  78. data/lib/geocoder/results/maxmind.rb +135 -0
  79. data/lib/geocoder/results/maxmind_local.rb +49 -0
  80. data/lib/geocoder/results/nominatim.rb +94 -0
  81. data/lib/geocoder/results/okf.rb +106 -0
  82. data/lib/geocoder/results/opencagedata.rb +82 -0
  83. data/lib/geocoder/results/ovi.rb +62 -0
  84. data/lib/geocoder/results/pointpin.rb +44 -0
  85. data/lib/geocoder/results/smarty_streets.rb +106 -0
  86. data/lib/geocoder/results/telize.rb +45 -0
  87. data/lib/geocoder/results/test.rb +33 -0
  88. data/lib/geocoder/results/yahoo.rb +55 -0
  89. data/lib/geocoder/results/yandex.rb +84 -0
  90. data/lib/geocoder/sql.rb +107 -0
  91. data/lib/geocoder/stores/active_record.rb +278 -0
  92. data/lib/geocoder/stores/base.rb +127 -0
  93. data/lib/geocoder/stores/mongo_base.rb +89 -0
  94. data/lib/geocoder/stores/mongo_mapper.rb +13 -0
  95. data/lib/geocoder/stores/mongoid.rb +13 -0
  96. data/lib/geocoder/version.rb +3 -0
  97. data/lib/geocoder.rb +47 -0
  98. data/lib/hash_recursive_merge.rb +74 -0
  99. data/lib/maxmind_database.rb +109 -0
  100. data/lib/oauth_util.rb +112 -0
  101. data/lib/tasks/geocoder.rake +29 -0
  102. data/lib/tasks/maxmind.rake +73 -0
  103. data/test/fixtures/baidu_invalid_key +1 -0
  104. data/test/fixtures/baidu_ip_202_198_16_3 +19 -0
  105. data/test/fixtures/baidu_ip_invalid_key +1 -0
  106. data/test/fixtures/baidu_ip_no_results +1 -0
  107. data/test/fixtures/baidu_no_results +1 -0
  108. data/test/fixtures/baidu_reverse +1 -0
  109. data/test/fixtures/baidu_shanghai_pearl_tower +12 -0
  110. data/test/fixtures/bing_invalid_key +1 -0
  111. data/test/fixtures/bing_madison_square_garden +40 -0
  112. data/test/fixtures/bing_no_results +16 -0
  113. data/test/fixtures/bing_reverse +42 -0
  114. data/test/fixtures/cloudmade_invalid_key +1 -0
  115. data/test/fixtures/cloudmade_madison_square_garden +1 -0
  116. data/test/fixtures/cloudmade_no_results +1 -0
  117. data/test/fixtures/esri_madison_square_garden +59 -0
  118. data/test/fixtures/esri_no_results +8 -0
  119. data/test/fixtures/esri_reverse +21 -0
  120. data/test/fixtures/freegeoip_74_200_247_59 +12 -0
  121. data/test/fixtures/freegeoip_no_results +1 -0
  122. data/test/fixtures/geocoder_ca_madison_square_garden +1 -0
  123. data/test/fixtures/geocoder_ca_no_results +1 -0
  124. data/test/fixtures/geocoder_ca_reverse +34 -0
  125. data/test/fixtures/geocoder_us_madison_square_garden +1 -0
  126. data/test/fixtures/geocoder_us_no_results +1 -0
  127. data/test/fixtures/geocodio_1101_pennsylvania_ave +1 -0
  128. data/test/fixtures/geocodio_bad_api_key +3 -0
  129. data/test/fixtures/geocodio_invalid +4 -0
  130. data/test/fixtures/geocodio_no_results +1 -0
  131. data/test/fixtures/geocodio_over_query_limit +4 -0
  132. data/test/fixtures/google_garbage +456 -0
  133. data/test/fixtures/google_madison_square_garden +57 -0
  134. data/test/fixtures/google_no_city_data +44 -0
  135. data/test/fixtures/google_no_locality +51 -0
  136. data/test/fixtures/google_no_results +4 -0
  137. data/test/fixtures/google_over_limit +4 -0
  138. data/test/fixtures/google_places_details_invalid_request +4 -0
  139. data/test/fixtures/google_places_details_madison_square_garden +120 -0
  140. data/test/fixtures/google_places_details_no_results +4 -0
  141. data/test/fixtures/google_places_details_no_reviews +60 -0
  142. data/test/fixtures/google_places_details_no_types +66 -0
  143. data/test/fixtures/here_madison_square_garden +72 -0
  144. data/test/fixtures/here_no_results +8 -0
  145. data/test/fixtures/mapquest_error +16 -0
  146. data/test/fixtures/mapquest_invalid_api_key +16 -0
  147. data/test/fixtures/mapquest_invalid_request +16 -0
  148. data/test/fixtures/mapquest_madison_square_garden +52 -0
  149. data/test/fixtures/mapquest_no_results +16 -0
  150. data/test/fixtures/maxmind_24_24_24_21 +1 -0
  151. data/test/fixtures/maxmind_24_24_24_22 +1 -0
  152. data/test/fixtures/maxmind_24_24_24_23 +1 -0
  153. data/test/fixtures/maxmind_24_24_24_24 +1 -0
  154. data/test/fixtures/maxmind_74_200_247_59 +1 -0
  155. data/test/fixtures/maxmind_invalid_key +1 -0
  156. data/test/fixtures/maxmind_no_results +1 -0
  157. data/test/fixtures/nominatim_madison_square_garden +150 -0
  158. data/test/fixtures/nominatim_no_results +1 -0
  159. data/test/fixtures/nominatim_over_limit +1 -0
  160. data/test/fixtures/okf_kirstinmaki +67 -0
  161. data/test/fixtures/okf_no_results +4 -0
  162. data/test/fixtures/opencagedata_invalid_api_key +25 -0
  163. data/test/fixtures/opencagedata_invalid_request +26 -0
  164. data/test/fixtures/opencagedata_madison_square_garden +73 -0
  165. data/test/fixtures/opencagedata_no_results +29 -0
  166. data/test/fixtures/opencagedata_over_limit +31 -0
  167. data/test/fixtures/ovi_madison_square_garden +72 -0
  168. data/test/fixtures/ovi_no_results +8 -0
  169. data/test/fixtures/pointpin_10_10_10_10 +1 -0
  170. data/test/fixtures/pointpin_555_555_555_555 +1 -0
  171. data/test/fixtures/pointpin_80_111_555_555 +1 -0
  172. data/test/fixtures/pointpin_no_results +1 -0
  173. data/test/fixtures/smarty_streets_11211 +1 -0
  174. data/test/fixtures/smarty_streets_madison_square_garden +47 -0
  175. data/test/fixtures/smarty_streets_no_results +1 -0
  176. data/test/fixtures/telize_10_10_10_10 +1 -0
  177. data/test/fixtures/telize_555_555_555_555 +4 -0
  178. data/test/fixtures/telize_74_200_247_59 +1 -0
  179. data/test/fixtures/telize_no_results +1 -0
  180. data/test/fixtures/yahoo_error +1 -0
  181. data/test/fixtures/yahoo_invalid_key +2 -0
  182. data/test/fixtures/yahoo_madison_square_garden +52 -0
  183. data/test/fixtures/yahoo_no_results +10 -0
  184. data/test/fixtures/yahoo_over_limit +2 -0
  185. data/test/fixtures/yandex_canada_rue_dupuis_14 +446 -0
  186. data/test/fixtures/yandex_invalid_key +1 -0
  187. data/test/fixtures/yandex_kremlin +48 -0
  188. data/test/fixtures/yandex_new_york +1 -0
  189. data/test/fixtures/yandex_no_city_and_town +112 -0
  190. data/test/fixtures/yandex_no_results +16 -0
  191. data/test/integration/http_client_test.rb +31 -0
  192. data/test/mongoid_test_helper.rb +43 -0
  193. data/test/test_helper.rb +386 -0
  194. data/test/unit/active_record_test.rb +16 -0
  195. data/test/unit/cache_test.rb +37 -0
  196. data/test/unit/calculations_test.rb +220 -0
  197. data/test/unit/configuration_test.rb +55 -0
  198. data/test/unit/error_handling_test.rb +56 -0
  199. data/test/unit/geocoder_test.rb +78 -0
  200. data/test/unit/https_test.rb +17 -0
  201. data/test/unit/ip_address_test.rb +27 -0
  202. data/test/unit/lookup_test.rb +153 -0
  203. data/test/unit/lookups/bing_test.rb +68 -0
  204. data/test/unit/lookups/dstk_test.rb +26 -0
  205. data/test/unit/lookups/esri_test.rb +48 -0
  206. data/test/unit/lookups/freegeoip_test.rb +27 -0
  207. data/test/unit/lookups/geocoder_ca_test.rb +17 -0
  208. data/test/unit/lookups/geocodio_test.rb +55 -0
  209. data/test/unit/lookups/google_places_details_test.rb +122 -0
  210. data/test/unit/lookups/google_premier_test.rb +22 -0
  211. data/test/unit/lookups/google_test.rb +84 -0
  212. data/test/unit/lookups/mapquest_test.rb +60 -0
  213. data/test/unit/lookups/maxmind_local_test.rb +28 -0
  214. data/test/unit/lookups/maxmind_test.rb +63 -0
  215. data/test/unit/lookups/nominatim_test.rb +31 -0
  216. data/test/unit/lookups/okf_test.rb +38 -0
  217. data/test/unit/lookups/opencagedata_test.rb +64 -0
  218. data/test/unit/lookups/pointpin_test.rb +30 -0
  219. data/test/unit/lookups/smarty_streets_test.rb +71 -0
  220. data/test/unit/lookups/telize_test.rb +36 -0
  221. data/test/unit/lookups/yahoo_test.rb +35 -0
  222. data/test/unit/method_aliases_test.rb +26 -0
  223. data/test/unit/model_test.rb +38 -0
  224. data/test/unit/mongoid_test.rb +47 -0
  225. data/test/unit/near_test.rb +87 -0
  226. data/test/unit/oauth_util_test.rb +31 -0
  227. data/test/unit/proxy_test.rb +37 -0
  228. data/test/unit/query_test.rb +52 -0
  229. data/test/unit/rake_task_test.rb +21 -0
  230. data/test/unit/request_test.rb +35 -0
  231. data/test/unit/result_test.rb +72 -0
  232. data/test/unit/test_mode_test.rb +70 -0
  233. metadata +281 -0
@@ -0,0 +1,72 @@
1
+ # encoding: utf-8
2
+ $: << File.join(File.dirname(__FILE__), "..")
3
+ require 'test_helper'
4
+
5
+ class ResultTest < GeocoderTestCase
6
+
7
+ def test_result_has_required_attributes
8
+ Geocoder::Lookup.all_services_except_test.each do |l|
9
+ Geocoder.configure(:lookup => l)
10
+ set_api_key!(l)
11
+ result = Geocoder.search([45.423733, -75.676333]).first
12
+ assert_result_has_required_attributes(result)
13
+ end
14
+ end
15
+
16
+ def test_yandex_result_without_city_does_not_raise_exception
17
+ assert_nothing_raised do
18
+ Geocoder.configure(:lookup => :yandex)
19
+ set_api_key!(:yandex)
20
+ result = Geocoder.search("no city and town").first
21
+ assert_equal "", result.city
22
+ end
23
+ end
24
+
25
+ def test_yandex_result_new_york
26
+ assert_nothing_raised do
27
+ Geocoder.configure(:lookup => :yandex)
28
+ set_api_key!(:yandex)
29
+ result = Geocoder.search("new york").first
30
+ assert_equal "", result.city
31
+ end
32
+ end
33
+
34
+ def test_yandex_result_kind
35
+ assert_nothing_raised do
36
+ Geocoder.configure(:lookup => :yandex)
37
+ set_api_key!(:yandex)
38
+ ["new york", [45.423733, -75.676333], "no city and town"].each do |query|
39
+ Geocoder.search("new york").first.kind
40
+ end
41
+ end
42
+ end
43
+
44
+ def test_yandex_result_without_locality_name
45
+ assert_nothing_raised do
46
+ Geocoder.configure(:lookup => :yandex)
47
+ set_api_key!(:yandex)
48
+ result = Geocoder.search("canada rue dupuis 14")[6]
49
+ assert_equal "", result.city
50
+ end
51
+ end
52
+
53
+ private # ------------------------------------------------------------------
54
+
55
+ def assert_result_has_required_attributes(result)
56
+ m = "Lookup #{Geocoder.config.lookup} does not support %s attribute."
57
+ assert result.coordinates.is_a?(Array), m % "coordinates"
58
+ assert result.latitude.is_a?(Float), m % "latitude"
59
+ assert result.latitude != 0.0, m % "latitude"
60
+ assert result.longitude.is_a?(Float), m % "longitude"
61
+ assert result.longitude != 0.0, m % "longitude"
62
+ assert result.city.is_a?(String), m % "city"
63
+ assert result.state.is_a?(String), m % "state"
64
+ assert result.state_code.is_a?(String), m % "state_code"
65
+ assert result.province.is_a?(String), m % "province"
66
+ assert result.province_code.is_a?(String), m % "province_code"
67
+ assert result.postal_code.is_a?(String), m % "postal_code"
68
+ assert result.country.is_a?(String), m % "country"
69
+ assert result.country_code.is_a?(String), m % "country_code"
70
+ assert_not_nil result.address, m % "address"
71
+ end
72
+ end
@@ -0,0 +1,70 @@
1
+ # encoding: utf-8
2
+ $: << File.join(File.dirname(__FILE__), "..")
3
+ require 'test_helper'
4
+
5
+ class TestModeTest < GeocoderTestCase
6
+
7
+ def setup
8
+ @_original_lookup = Geocoder.config.lookup
9
+ Geocoder.configure(:lookup => :test)
10
+ end
11
+
12
+ def teardown
13
+ Geocoder::Lookup::Test.reset
14
+ Geocoder.configure(:lookup => @_original_lookup)
15
+ end
16
+
17
+ def test_search_with_known_stub
18
+ Geocoder::Lookup::Test.add_stub("New York, NY", [mock_attributes])
19
+
20
+ results = Geocoder.search("New York, NY")
21
+ result = results.first
22
+
23
+ assert_equal 1, results.size
24
+ mock_attributes.keys.each do |attr|
25
+ assert_equal mock_attributes[attr], result.send(attr)
26
+ end
27
+ end
28
+
29
+ def test_search_with_unknown_stub_without_default
30
+ assert_raise ArgumentError do
31
+ Geocoder.search("New York, NY")
32
+ end
33
+ end
34
+
35
+ def test_search_with_unknown_stub_with_default
36
+ Geocoder::Lookup::Test.set_default_stub([mock_attributes])
37
+
38
+ results = Geocoder.search("Atlantis, OC")
39
+ result = results.first
40
+
41
+ assert_equal 1, results.size
42
+ mock_attributes.keys.each do |attr|
43
+ assert_equal mock_attributes[attr], result.send(attr)
44
+ end
45
+ end
46
+
47
+ def test_search_with_custom_attributes
48
+ custom_attributes = mock_attributes.merge(:custom => 'NY, NY')
49
+ Geocoder::Lookup::Test.add_stub("New York, NY", [custom_attributes])
50
+
51
+ result = Geocoder.search("New York, NY").first
52
+
53
+ assert_equal 'NY, NY', result.custom
54
+ end
55
+
56
+ private
57
+ def mock_attributes
58
+ coordinates = [40.7143528, -74.0059731]
59
+ @mock_attributes ||= {
60
+ 'coordinates' => coordinates,
61
+ 'latitude' => coordinates[0],
62
+ 'longitude' => coordinates[1],
63
+ 'address' => 'New York, NY, USA',
64
+ 'state' => 'New York',
65
+ 'state_code' => 'NY',
66
+ 'country' => 'United States',
67
+ 'country_code' => 'US',
68
+ }
69
+ end
70
+ end
metadata ADDED
@@ -0,0 +1,281 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bw-geocoder
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.5
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alex Reisner
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-10-02 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Provides object geocoding (by street or IP address), reverse geocoding
15
+ (coordinates to street address), distance queries for ActiveRecord and Mongoid,
16
+ result caching, and more. Designed for Rails but works with Sinatra and other Rack
17
+ frameworks too.
18
+ email:
19
+ - alex@alexreisner.com
20
+ executables:
21
+ - geocode
22
+ extensions: []
23
+ extra_rdoc_files: []
24
+ files:
25
+ - .gitignore
26
+ - .travis.yml
27
+ - CHANGELOG.md
28
+ - LICENSE
29
+ - README.md
30
+ - Rakefile
31
+ - bin/geocode
32
+ - examples/autoexpire_cache_dalli.rb
33
+ - examples/autoexpire_cache_redis.rb
34
+ - examples/cache_bypass.rb
35
+ - gemfiles/Gemfile.mongoid-2.4.x
36
+ - lib/generators/geocoder/config/config_generator.rb
37
+ - lib/generators/geocoder/config/templates/initializer.rb
38
+ - lib/generators/geocoder/maxmind/geolite_city_generator.rb
39
+ - lib/generators/geocoder/maxmind/geolite_country_generator.rb
40
+ - lib/generators/geocoder/maxmind/templates/migration/geolite_city.rb
41
+ - lib/generators/geocoder/maxmind/templates/migration/geolite_country.rb
42
+ - lib/geocoder.rb
43
+ - lib/geocoder/cache.rb
44
+ - lib/geocoder/calculations.rb
45
+ - lib/geocoder/cli.rb
46
+ - lib/geocoder/configuration.rb
47
+ - lib/geocoder/configuration_hash.rb
48
+ - lib/geocoder/exceptions.rb
49
+ - lib/geocoder/ip_address.rb
50
+ - lib/geocoder/lookup.rb
51
+ - lib/geocoder/lookups/baidu.rb
52
+ - lib/geocoder/lookups/baidu_ip.rb
53
+ - lib/geocoder/lookups/base.rb
54
+ - lib/geocoder/lookups/bing.rb
55
+ - lib/geocoder/lookups/dstk.rb
56
+ - lib/geocoder/lookups/esri.rb
57
+ - lib/geocoder/lookups/freegeoip.rb
58
+ - lib/geocoder/lookups/geocoder_ca.rb
59
+ - lib/geocoder/lookups/geocoder_us.rb
60
+ - lib/geocoder/lookups/geocodio.rb
61
+ - lib/geocoder/lookups/google.rb
62
+ - lib/geocoder/lookups/google_places_details.rb
63
+ - lib/geocoder/lookups/google_premier.rb
64
+ - lib/geocoder/lookups/here.rb
65
+ - lib/geocoder/lookups/ip_address_labs.rb
66
+ - lib/geocoder/lookups/mapquest.rb
67
+ - lib/geocoder/lookups/maxmind.rb
68
+ - lib/geocoder/lookups/maxmind_local.rb
69
+ - lib/geocoder/lookups/nominatim.rb
70
+ - lib/geocoder/lookups/okf.rb
71
+ - lib/geocoder/lookups/opencagedata.rb
72
+ - lib/geocoder/lookups/ovi.rb
73
+ - lib/geocoder/lookups/pointpin.rb
74
+ - lib/geocoder/lookups/smarty_streets.rb
75
+ - lib/geocoder/lookups/telize.rb
76
+ - lib/geocoder/lookups/test.rb
77
+ - lib/geocoder/lookups/yahoo.rb
78
+ - lib/geocoder/lookups/yandex.rb
79
+ - lib/geocoder/models/active_record.rb
80
+ - lib/geocoder/models/base.rb
81
+ - lib/geocoder/models/mongo_base.rb
82
+ - lib/geocoder/models/mongo_mapper.rb
83
+ - lib/geocoder/models/mongoid.rb
84
+ - lib/geocoder/query.rb
85
+ - lib/geocoder/railtie.rb
86
+ - lib/geocoder/request.rb
87
+ - lib/geocoder/results/baidu.rb
88
+ - lib/geocoder/results/baidu_ip.rb
89
+ - lib/geocoder/results/base.rb
90
+ - lib/geocoder/results/bing.rb
91
+ - lib/geocoder/results/dstk.rb
92
+ - lib/geocoder/results/esri.rb
93
+ - lib/geocoder/results/freegeoip.rb
94
+ - lib/geocoder/results/geocoder_ca.rb
95
+ - lib/geocoder/results/geocoder_us.rb
96
+ - lib/geocoder/results/geocodio.rb
97
+ - lib/geocoder/results/google.rb
98
+ - lib/geocoder/results/google_places_details.rb
99
+ - lib/geocoder/results/google_premier.rb
100
+ - lib/geocoder/results/here.rb
101
+ - lib/geocoder/results/ip_address_labs.rb
102
+ - lib/geocoder/results/mapquest.rb
103
+ - lib/geocoder/results/maxmind.rb
104
+ - lib/geocoder/results/maxmind_local.rb
105
+ - lib/geocoder/results/nominatim.rb
106
+ - lib/geocoder/results/okf.rb
107
+ - lib/geocoder/results/opencagedata.rb
108
+ - lib/geocoder/results/ovi.rb
109
+ - lib/geocoder/results/pointpin.rb
110
+ - lib/geocoder/results/smarty_streets.rb
111
+ - lib/geocoder/results/telize.rb
112
+ - lib/geocoder/results/test.rb
113
+ - lib/geocoder/results/yahoo.rb
114
+ - lib/geocoder/results/yandex.rb
115
+ - lib/geocoder/sql.rb
116
+ - lib/geocoder/stores/active_record.rb
117
+ - lib/geocoder/stores/base.rb
118
+ - lib/geocoder/stores/mongo_base.rb
119
+ - lib/geocoder/stores/mongo_mapper.rb
120
+ - lib/geocoder/stores/mongoid.rb
121
+ - lib/geocoder/version.rb
122
+ - lib/hash_recursive_merge.rb
123
+ - lib/maxmind_database.rb
124
+ - lib/oauth_util.rb
125
+ - lib/tasks/geocoder.rake
126
+ - lib/tasks/maxmind.rake
127
+ - test/fixtures/baidu_invalid_key
128
+ - test/fixtures/baidu_ip_202_198_16_3
129
+ - test/fixtures/baidu_ip_invalid_key
130
+ - test/fixtures/baidu_ip_no_results
131
+ - test/fixtures/baidu_no_results
132
+ - test/fixtures/baidu_reverse
133
+ - test/fixtures/baidu_shanghai_pearl_tower
134
+ - test/fixtures/bing_invalid_key
135
+ - test/fixtures/bing_madison_square_garden
136
+ - test/fixtures/bing_no_results
137
+ - test/fixtures/bing_reverse
138
+ - test/fixtures/cloudmade_invalid_key
139
+ - test/fixtures/cloudmade_madison_square_garden
140
+ - test/fixtures/cloudmade_no_results
141
+ - test/fixtures/esri_madison_square_garden
142
+ - test/fixtures/esri_no_results
143
+ - test/fixtures/esri_reverse
144
+ - test/fixtures/freegeoip_74_200_247_59
145
+ - test/fixtures/freegeoip_no_results
146
+ - test/fixtures/geocoder_ca_madison_square_garden
147
+ - test/fixtures/geocoder_ca_no_results
148
+ - test/fixtures/geocoder_ca_reverse
149
+ - test/fixtures/geocoder_us_madison_square_garden
150
+ - test/fixtures/geocoder_us_no_results
151
+ - test/fixtures/geocodio_1101_pennsylvania_ave
152
+ - test/fixtures/geocodio_bad_api_key
153
+ - test/fixtures/geocodio_invalid
154
+ - test/fixtures/geocodio_no_results
155
+ - test/fixtures/geocodio_over_query_limit
156
+ - test/fixtures/google_garbage
157
+ - test/fixtures/google_madison_square_garden
158
+ - test/fixtures/google_no_city_data
159
+ - test/fixtures/google_no_locality
160
+ - test/fixtures/google_no_results
161
+ - test/fixtures/google_over_limit
162
+ - test/fixtures/google_places_details_invalid_request
163
+ - test/fixtures/google_places_details_madison_square_garden
164
+ - test/fixtures/google_places_details_no_results
165
+ - test/fixtures/google_places_details_no_reviews
166
+ - test/fixtures/google_places_details_no_types
167
+ - test/fixtures/here_madison_square_garden
168
+ - test/fixtures/here_no_results
169
+ - test/fixtures/mapquest_error
170
+ - test/fixtures/mapquest_invalid_api_key
171
+ - test/fixtures/mapquest_invalid_request
172
+ - test/fixtures/mapquest_madison_square_garden
173
+ - test/fixtures/mapquest_no_results
174
+ - test/fixtures/maxmind_24_24_24_21
175
+ - test/fixtures/maxmind_24_24_24_22
176
+ - test/fixtures/maxmind_24_24_24_23
177
+ - test/fixtures/maxmind_24_24_24_24
178
+ - test/fixtures/maxmind_74_200_247_59
179
+ - test/fixtures/maxmind_invalid_key
180
+ - test/fixtures/maxmind_no_results
181
+ - test/fixtures/nominatim_madison_square_garden
182
+ - test/fixtures/nominatim_no_results
183
+ - test/fixtures/nominatim_over_limit
184
+ - test/fixtures/okf_kirstinmaki
185
+ - test/fixtures/okf_no_results
186
+ - test/fixtures/opencagedata_invalid_api_key
187
+ - test/fixtures/opencagedata_invalid_request
188
+ - test/fixtures/opencagedata_madison_square_garden
189
+ - test/fixtures/opencagedata_no_results
190
+ - test/fixtures/opencagedata_over_limit
191
+ - test/fixtures/ovi_madison_square_garden
192
+ - test/fixtures/ovi_no_results
193
+ - test/fixtures/pointpin_10_10_10_10
194
+ - test/fixtures/pointpin_555_555_555_555
195
+ - test/fixtures/pointpin_80_111_555_555
196
+ - test/fixtures/pointpin_no_results
197
+ - test/fixtures/smarty_streets_11211
198
+ - test/fixtures/smarty_streets_madison_square_garden
199
+ - test/fixtures/smarty_streets_no_results
200
+ - test/fixtures/telize_10_10_10_10
201
+ - test/fixtures/telize_555_555_555_555
202
+ - test/fixtures/telize_74_200_247_59
203
+ - test/fixtures/telize_no_results
204
+ - test/fixtures/yahoo_error
205
+ - test/fixtures/yahoo_invalid_key
206
+ - test/fixtures/yahoo_madison_square_garden
207
+ - test/fixtures/yahoo_no_results
208
+ - test/fixtures/yahoo_over_limit
209
+ - test/fixtures/yandex_canada_rue_dupuis_14
210
+ - test/fixtures/yandex_invalid_key
211
+ - test/fixtures/yandex_kremlin
212
+ - test/fixtures/yandex_new_york
213
+ - test/fixtures/yandex_no_city_and_town
214
+ - test/fixtures/yandex_no_results
215
+ - test/integration/http_client_test.rb
216
+ - test/mongoid_test_helper.rb
217
+ - test/test_helper.rb
218
+ - test/unit/active_record_test.rb
219
+ - test/unit/cache_test.rb
220
+ - test/unit/calculations_test.rb
221
+ - test/unit/configuration_test.rb
222
+ - test/unit/error_handling_test.rb
223
+ - test/unit/geocoder_test.rb
224
+ - test/unit/https_test.rb
225
+ - test/unit/ip_address_test.rb
226
+ - test/unit/lookup_test.rb
227
+ - test/unit/lookups/bing_test.rb
228
+ - test/unit/lookups/dstk_test.rb
229
+ - test/unit/lookups/esri_test.rb
230
+ - test/unit/lookups/freegeoip_test.rb
231
+ - test/unit/lookups/geocoder_ca_test.rb
232
+ - test/unit/lookups/geocodio_test.rb
233
+ - test/unit/lookups/google_places_details_test.rb
234
+ - test/unit/lookups/google_premier_test.rb
235
+ - test/unit/lookups/google_test.rb
236
+ - test/unit/lookups/mapquest_test.rb
237
+ - test/unit/lookups/maxmind_local_test.rb
238
+ - test/unit/lookups/maxmind_test.rb
239
+ - test/unit/lookups/nominatim_test.rb
240
+ - test/unit/lookups/okf_test.rb
241
+ - test/unit/lookups/opencagedata_test.rb
242
+ - test/unit/lookups/pointpin_test.rb
243
+ - test/unit/lookups/smarty_streets_test.rb
244
+ - test/unit/lookups/telize_test.rb
245
+ - test/unit/lookups/yahoo_test.rb
246
+ - test/unit/method_aliases_test.rb
247
+ - test/unit/model_test.rb
248
+ - test/unit/mongoid_test.rb
249
+ - test/unit/near_test.rb
250
+ - test/unit/oauth_util_test.rb
251
+ - test/unit/proxy_test.rb
252
+ - test/unit/query_test.rb
253
+ - test/unit/rake_task_test.rb
254
+ - test/unit/request_test.rb
255
+ - test/unit/result_test.rb
256
+ - test/unit/test_mode_test.rb
257
+ homepage: http://www.rubygeocoder.com
258
+ licenses: []
259
+ post_install_message:
260
+ rdoc_options: []
261
+ require_paths:
262
+ - lib
263
+ required_ruby_version: !ruby/object:Gem::Requirement
264
+ none: false
265
+ requirements:
266
+ - - ! '>='
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
269
+ required_rubygems_version: !ruby/object:Gem::Requirement
270
+ none: false
271
+ requirements:
272
+ - - ! '>='
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
275
+ requirements: []
276
+ rubyforge_project:
277
+ rubygems_version: 1.8.24
278
+ signing_key:
279
+ specification_version: 3
280
+ summary: Complete geocoding solution for Ruby.
281
+ test_files: []