geocoder2 0.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.
Files changed (146) hide show
  1. data/.gitignore +5 -0
  2. data/.travis.yml +27 -0
  3. data/CHANGELOG.md +329 -0
  4. data/LICENSE +20 -0
  5. data/README.md +796 -0
  6. data/Rakefile +25 -0
  7. data/bin/geocode2 +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 +15 -0
  12. data/json?address=26+leonard+street%2C+Belmont&key=AIzaSyDoltU6YL8XeIQrSLFGk6ZfpKaWkPukwYQ&language=en +68 -0
  13. data/lib/generators/geocoder2/config/config_generator.rb +14 -0
  14. data/lib/generators/geocoder2/config/templates/initializer.rb +21 -0
  15. data/lib/geocoder2/cache.rb +89 -0
  16. data/lib/geocoder2/calculations.rb +389 -0
  17. data/lib/geocoder2/cli.rb +121 -0
  18. data/lib/geocoder2/configuration.rb +130 -0
  19. data/lib/geocoder2/configuration_hash.rb +11 -0
  20. data/lib/geocoder2/exceptions.rb +21 -0
  21. data/lib/geocoder2/lookup.rb +86 -0
  22. data/lib/geocoder2/lookups/baidu.rb +54 -0
  23. data/lib/geocoder2/lookups/base.rb +266 -0
  24. data/lib/geocoder2/lookups/bing.rb +47 -0
  25. data/lib/geocoder2/lookups/dstk.rb +20 -0
  26. data/lib/geocoder2/lookups/esri.rb +48 -0
  27. data/lib/geocoder2/lookups/freegeoip.rb +43 -0
  28. data/lib/geocoder2/lookups/geocoder_ca.rb +54 -0
  29. data/lib/geocoder2/lookups/geocoder_us.rb +39 -0
  30. data/lib/geocoder2/lookups/google.rb +69 -0
  31. data/lib/geocoder2/lookups/google_premier.rb +47 -0
  32. data/lib/geocoder2/lookups/mapquest.rb +59 -0
  33. data/lib/geocoder2/lookups/maxmind.rb +88 -0
  34. data/lib/geocoder2/lookups/nominatim.rb +44 -0
  35. data/lib/geocoder2/lookups/ovi.rb +62 -0
  36. data/lib/geocoder2/lookups/test.rb +44 -0
  37. data/lib/geocoder2/lookups/yahoo.rb +86 -0
  38. data/lib/geocoder2/lookups/yandex.rb +54 -0
  39. data/lib/geocoder2/models/active_record.rb +46 -0
  40. data/lib/geocoder2/models/base.rb +42 -0
  41. data/lib/geocoder2/models/mongo_base.rb +60 -0
  42. data/lib/geocoder2/models/mongo_mapper.rb +26 -0
  43. data/lib/geocoder2/models/mongoid.rb +32 -0
  44. data/lib/geocoder2/query.rb +107 -0
  45. data/lib/geocoder2/railtie.rb +26 -0
  46. data/lib/geocoder2/request.rb +23 -0
  47. data/lib/geocoder2/results/baidu.rb +79 -0
  48. data/lib/geocoder2/results/base.rb +67 -0
  49. data/lib/geocoder2/results/bing.rb +48 -0
  50. data/lib/geocoder2/results/dstk.rb +6 -0
  51. data/lib/geocoder2/results/esri.rb +51 -0
  52. data/lib/geocoder2/results/freegeoip.rb +45 -0
  53. data/lib/geocoder2/results/geocoder_ca.rb +60 -0
  54. data/lib/geocoder2/results/geocoder_us.rb +39 -0
  55. data/lib/geocoder2/results/google.rb +124 -0
  56. data/lib/geocoder2/results/google_premier.rb +6 -0
  57. data/lib/geocoder2/results/mapquest.rb +51 -0
  58. data/lib/geocoder2/results/maxmind.rb +135 -0
  59. data/lib/geocoder2/results/nominatim.rb +94 -0
  60. data/lib/geocoder2/results/ovi.rb +62 -0
  61. data/lib/geocoder2/results/test.rb +16 -0
  62. data/lib/geocoder2/results/yahoo.rb +55 -0
  63. data/lib/geocoder2/results/yandex.rb +80 -0
  64. data/lib/geocoder2/sql.rb +106 -0
  65. data/lib/geocoder2/stores/active_record.rb +272 -0
  66. data/lib/geocoder2/stores/base.rb +120 -0
  67. data/lib/geocoder2/stores/mongo_base.rb +89 -0
  68. data/lib/geocoder2/stores/mongo_mapper.rb +13 -0
  69. data/lib/geocoder2/stores/mongoid.rb +13 -0
  70. data/lib/geocoder2/version.rb +3 -0
  71. data/lib/geocoder2.rb +55 -0
  72. data/lib/hash_recursive_merge.rb +74 -0
  73. data/lib/oauth_util.rb +112 -0
  74. data/lib/tasks/geocoder2.rake +27 -0
  75. data/test/active_record_test.rb +15 -0
  76. data/test/cache_test.rb +35 -0
  77. data/test/calculations_test.rb +211 -0
  78. data/test/configuration_test.rb +78 -0
  79. data/test/custom_block_test.rb +32 -0
  80. data/test/error_handling_test.rb +43 -0
  81. data/test/fixtures/baidu_invalid_key +1 -0
  82. data/test/fixtures/baidu_no_results +1 -0
  83. data/test/fixtures/baidu_reverse +1 -0
  84. data/test/fixtures/baidu_shanghai_pearl_tower +12 -0
  85. data/test/fixtures/bing_invalid_key +1 -0
  86. data/test/fixtures/bing_madison_square_garden +40 -0
  87. data/test/fixtures/bing_no_results +16 -0
  88. data/test/fixtures/bing_reverse +42 -0
  89. data/test/fixtures/esri_madison_square_garden +59 -0
  90. data/test/fixtures/esri_no_results +8 -0
  91. data/test/fixtures/esri_reverse +21 -0
  92. data/test/fixtures/freegeoip_74_200_247_59 +12 -0
  93. data/test/fixtures/freegeoip_no_results +1 -0
  94. data/test/fixtures/geocoder_ca_madison_square_garden +1 -0
  95. data/test/fixtures/geocoder_ca_no_results +1 -0
  96. data/test/fixtures/geocoder_ca_reverse +34 -0
  97. data/test/fixtures/geocoder_us_madison_square_garden +1 -0
  98. data/test/fixtures/geocoder_us_no_results +1 -0
  99. data/test/fixtures/google_garbage +456 -0
  100. data/test/fixtures/google_madison_square_garden +57 -0
  101. data/test/fixtures/google_no_city_data +44 -0
  102. data/test/fixtures/google_no_locality +51 -0
  103. data/test/fixtures/google_no_results +4 -0
  104. data/test/fixtures/google_over_limit +4 -0
  105. data/test/fixtures/mapquest_error +16 -0
  106. data/test/fixtures/mapquest_invalid_api_key +16 -0
  107. data/test/fixtures/mapquest_invalid_request +16 -0
  108. data/test/fixtures/mapquest_madison_square_garden +52 -0
  109. data/test/fixtures/mapquest_no_results +16 -0
  110. data/test/fixtures/maxmind_24_24_24_21 +1 -0
  111. data/test/fixtures/maxmind_24_24_24_22 +1 -0
  112. data/test/fixtures/maxmind_24_24_24_23 +1 -0
  113. data/test/fixtures/maxmind_24_24_24_24 +1 -0
  114. data/test/fixtures/maxmind_74_200_247_59 +1 -0
  115. data/test/fixtures/maxmind_invalid_key +1 -0
  116. data/test/fixtures/maxmind_no_results +1 -0
  117. data/test/fixtures/nominatim_madison_square_garden +150 -0
  118. data/test/fixtures/nominatim_no_results +1 -0
  119. data/test/fixtures/ovi_madison_square_garden +72 -0
  120. data/test/fixtures/ovi_no_results +8 -0
  121. data/test/fixtures/yahoo_error +1 -0
  122. data/test/fixtures/yahoo_invalid_key +2 -0
  123. data/test/fixtures/yahoo_madison_square_garden +52 -0
  124. data/test/fixtures/yahoo_no_results +10 -0
  125. data/test/fixtures/yahoo_over_limit +2 -0
  126. data/test/fixtures/yandex_invalid_key +1 -0
  127. data/test/fixtures/yandex_kremlin +48 -0
  128. data/test/fixtures/yandex_no_city_and_town +112 -0
  129. data/test/fixtures/yandex_no_results +16 -0
  130. data/test/geocoder_test.rb +59 -0
  131. data/test/https_test.rb +16 -0
  132. data/test/integration/smoke_test.rb +26 -0
  133. data/test/lookup_test.rb +117 -0
  134. data/test/method_aliases_test.rb +25 -0
  135. data/test/mongoid_test.rb +46 -0
  136. data/test/mongoid_test_helper.rb +43 -0
  137. data/test/near_test.rb +61 -0
  138. data/test/oauth_util_test.rb +30 -0
  139. data/test/proxy_test.rb +36 -0
  140. data/test/query_test.rb +52 -0
  141. data/test/request_test.rb +29 -0
  142. data/test/result_test.rb +42 -0
  143. data/test/services_test.rb +393 -0
  144. data/test/test_helper.rb +289 -0
  145. data/test/test_mode_test.rb +59 -0
  146. metadata +213 -0
@@ -0,0 +1,40 @@
1
+ {
2
+ "authenticationResultCode":"ValidCredentials",
3
+ "brandLogoUri":"http:\/\/dev.virtualearth.net\/Branding\/logo_powered_by.png",
4
+ "copyright":"Copyright © 2011 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.",
5
+ "resourceSets":[
6
+ {
7
+ "estimatedTotal":1,
8
+ "resources":[
9
+ {
10
+ "__type":"Location:http:\/\/schemas.microsoft.com\/search\/local\/ws\/rest\/v1",
11
+ "bbox":[
12
+ 40.744944289326668,
13
+ -74.002353921532631,
14
+ 40.755675807595253,
15
+ -73.983625397086143
16
+ ],
17
+ "name":"Madison Square Garden, NY",
18
+ "point":{
19
+ "type":"Point",
20
+ "coordinates":[
21
+ 40.75031,
22
+ -73.99299
23
+ ]
24
+ },
25
+ "address":{
26
+ "adminDistrict":"NY",
27
+ "countryRegion":"United States",
28
+ "formattedAddress":"Madison Square Garden, NY",
29
+ "locality":"New York"
30
+ },
31
+ "confidence":"High",
32
+ "entityType":"Stadium"
33
+ }
34
+ ]
35
+ }
36
+ ],
37
+ "statusCode":200,
38
+ "statusDescription":"OK",
39
+ "traceId":"55094ee53c8d45e789794014666328cd|CH1M001466|02.00.82.2800|CH1MSNVM001396, CH1MSNVM001370, CH1MSNVM001397"
40
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "authenticationResultCode":"ValidCredentials",
3
+ "brandLogoUri":"http:\/\/dev.virtualearth.net\/Branding\/logo_powered_by.png",
4
+ "copyright":"Copyright © 2011 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.",
5
+ "resourceSets":[
6
+ {
7
+ "estimatedTotal":0,
8
+ "resources":[
9
+
10
+ ]
11
+ }
12
+ ],
13
+ "statusCode":200,
14
+ "statusDescription":"OK",
15
+ "traceId":"907b76a307bc49129a489de3d4c992ea|CH1M001463|02.00.82.2800|CH1MSNVM001383, CH1MSNVM001358, CH1MSNVM001397"
16
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "authenticationResultCode":"ValidCredentials",
3
+ "brandLogoUri":"http:\/\/dev.virtualearth.net\/Branding\/logo_powered_by.png",
4
+ "copyright":"Copyright © 2011 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.",
5
+ "resourceSets":[
6
+ {
7
+ "estimatedTotal":1,
8
+ "resources":[
9
+ {
10
+ "__type":"Location:http:\/\/schemas.microsoft.com\/search\/local\/ws\/rest\/v1",
11
+ "bbox":[
12
+ 45.419835111675845,
13
+ -75.683656128790716,
14
+ 45.4275605468172,
15
+ -75.66898098334994
16
+ ],
17
+ "name":"291 Rue Somerset E, Ottawa, ON, K1N",
18
+ "point":{
19
+ "type":"Point",
20
+ "coordinates":[
21
+ 45.423697829246521,
22
+ -75.676318556070328
23
+ ]
24
+ },
25
+ "address":{
26
+ "addressLine":"291 Rue Somerset E",
27
+ "adminDistrict":"ON",
28
+ "countryRegion":"Canada",
29
+ "formattedAddress":"291 Rue Somerset E, Ottawa, ON, K1N",
30
+ "locality":"Ottawa",
31
+ "postalCode":"K1N"
32
+ },
33
+ "confidence":"Medium",
34
+ "entityType":"Address"
35
+ }
36
+ ]
37
+ }
38
+ ],
39
+ "statusCode":200,
40
+ "statusDescription":"OK",
41
+ "traceId":"27bd5ed659e64ba6970c4144f1d4ea94|CH1M001470|02.00.82.2800|CH1MSNVM001396, CH1MSNVM001374"
42
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "spatialReference": {
3
+ "wkid": 4326,
4
+ "latestWkid": 4326
5
+ },
6
+ "locations": [
7
+ {
8
+ "name": "Madison Square Garden",
9
+ "extent": {
10
+ "xmin": -74.000241000000003,
11
+ "ymin": 40.744050000000001,
12
+ "xmax": -73.988241000000002,
13
+ "ymax": 40.756050000000002
14
+ },
15
+ "feature": {
16
+ "geometry": {
17
+ "x": -73.994238897999651,
18
+ "y": 40.750049813000487
19
+ },
20
+ "attributes": {
21
+ "Loc_name": "Gaz.WorldGazetteer.POI2",
22
+ "Score": 100,
23
+ "Match_addr": "Madison Square Garden",
24
+ "Addr_type": "POI",
25
+ "Type": "Sports Complex",
26
+ "PlaceName": "Madison Square Garden",
27
+ "Rank": "18",
28
+ "AddBldg": "",
29
+ "AddNum": "",
30
+ "AddNumFrom": "",
31
+ "AddNumTo": "",
32
+ "Side": "",
33
+ "StPreDir": "",
34
+ "StPreType": "",
35
+ "StName": "",
36
+ "StType": "",
37
+ "StDir": "",
38
+ "Nbrhd": "",
39
+ "City": "New York",
40
+ "Subregion": "New York",
41
+ "Region": "New York",
42
+ "Postal": "10001",
43
+ "PostalExt": "",
44
+ "Country": "USA",
45
+ "LangCode": "",
46
+ "Distance": 0,
47
+ "X": -73.994240000000005,
48
+ "Y": 40.750050000000002,
49
+ "DisplayX": -73.994240000000005,
50
+ "DisplayY": 40.750050000000002,
51
+ "Xmin": -74.000241000000003,
52
+ "Xmax": -73.988241000000002,
53
+ "Ymin": 40.744050000000001,
54
+ "Ymax": 40.756050000000002
55
+ }
56
+ }
57
+ }
58
+ ]
59
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "spatialReference": {
3
+ "wkid": 4326,
4
+ "latestWkid": 4326
5
+ },
6
+ "locations": [
7
+ ]
8
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "address": {
3
+ "Address": "4 Avenue Gustave Eiffel",
4
+ "Neighborhood": "7e Arrondissement",
5
+ "City": "Paris",
6
+ "Subregion": "Paris",
7
+ "Region": "Île-de-France",
8
+ "Postal": "75007",
9
+ "PostalExt": null,
10
+ "CountryCode": "FRA",
11
+ "Loc_name": "FRA.PointAddress"
12
+ },
13
+ "location": {
14
+ "x": 2.2956200048981574,
15
+ "y": 48.858129997357558,
16
+ "spatialReference": {
17
+ "wkid": 4326,
18
+ "latestWkid": 4326
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "city": "Plano",
3
+ "region_code": "TX",
4
+ "region_name": "Texas",
5
+ "metrocode": "623",
6
+ "zipcode": "75093",
7
+ "longitude": "-96.8134",
8
+ "country_name": "United States",
9
+ "country_code": "US",
10
+ "ip": "74.200.247.59",
11
+ "latitude": "33.0347"
12
+ }
@@ -0,0 +1 @@
1
+ <html><title>404: Not Found</title><body>404: Not Found</body></html>
@@ -0,0 +1 @@
1
+ test({"longt":"-73.992006","latt":"40.749101"});
@@ -0,0 +1 @@
1
+ test({"longt":"-0.000000","error":{"description":"Postal Code is not in the proper Format.","code":"005"},"latt":"176946676.000000"});
@@ -0,0 +1,34 @@
1
+ test({
2
+ "latt":"45.423733",
3
+ "longt":"-75.676333",
4
+ "inlatt":"45.424035",
5
+ "inlongt":"-75.675941",
6
+ "betweenRoad1":"Chapel",
7
+ "betweenRoad2":"Russell",
8
+ "distance":"0.034",
9
+ "stnumber":"289",
10
+ "staddress":"Somerset ST E",
11
+ "city":"Ottawa",
12
+ "prov":"ON",
13
+ "postal":"K1N6W1",
14
+ "NearRoad":"Somerset ST E",
15
+ "NearRoadDistance":"0.013",
16
+ "intersection":{
17
+ "lattx":"45.423733",
18
+ "longtx":"-75.676333",
19
+ "distance":"0.045",
20
+ "street1":"Somerset St E",
21
+ "street2":"Russell Ave",
22
+ "city":"OTTAWA",
23
+ "prov":"ON"
24
+ },
25
+ "major_intersection":{
26
+ "lattx":"45.4241623853",
27
+ "longtx":"-75.6753026518",
28
+ "distance":"0.052",
29
+ "street1":"Chapel St",
30
+ "street2":"Somerset St E",
31
+ "city":"OTTAWA",
32
+ "prov":"ON"
33
+ }
34
+ });
@@ -0,0 +1 @@
1
+ 40.678107, -73.897460, 4 Pennsylvania Ave, New York, NY, 11207
@@ -0,0 +1 @@
1
+ 2: couldn't find this address! sorry