geokit 1.7.1 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -14
- data/.travis.yml +1 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +2 -1
- data/MIT-LICENSE +20 -0
- data/README.markdown +44 -39
- data/Rakefile +15 -0
- data/fixtures/vcr_cassettes/bing_full.yml +102 -0
- data/fixtures/vcr_cassettes/bing_full_au.yml +91 -0
- data/fixtures/vcr_cassettes/bing_full_de.yml +91 -0
- data/fixtures/vcr_cassettes/fcc_reverse_geocode.yml +37 -0
- data/fixtures/vcr_cassettes/free_geo_ip_geocode.yml +36 -0
- data/fixtures/vcr_cassettes/geo_plugin_geocode.yml +38 -0
- data/fixtures/vcr_cassettes/geonames_geocode.yml +304 -0
- data/fixtures/vcr_cassettes/{google3_city.yml → google_city.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_country_code_biased_result.yml → google_country_code_biased_result.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_full.yml → google_full.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_full_short.yml → google_full_short.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_language_response_fr.yml → google_language_response_fr.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_multi.yml → google_multi.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_reverse_madrid.yml → google_reverse_madrid.yml} +0 -0
- data/fixtures/vcr_cassettes/ripe_geocode.yml +66 -0
- data/fixtures/vcr_cassettes/ripe_geocode_au.yml +66 -0
- data/geokit.gemspec +1 -1
- data/lib/geokit.rb +5 -0
- data/lib/geokit/bounds.rb +96 -0
- data/lib/geokit/core_ext.rb +17 -0
- data/lib/geokit/geo_loc.rb +134 -0
- data/lib/geokit/geocoders.rb +48 -35
- data/lib/geokit/geocoders/base_ip.rb +43 -0
- data/lib/geokit/geocoders/bing.rb +101 -0
- data/lib/geokit/geocoders/ca_geocoder.rb +50 -0
- data/lib/geokit/{services → geocoders}/fcc.rb +17 -20
- data/lib/geokit/geocoders/free_geo_ip.rb +34 -0
- data/lib/geokit/geocoders/geo_plugin.rb +33 -0
- data/lib/geokit/geocoders/geonames.rb +53 -0
- data/lib/geokit/{services/google3.rb → geocoders/google.rb} +59 -57
- data/lib/geokit/geocoders/ip.rb +69 -0
- data/lib/geokit/geocoders/mapquest.rb +72 -0
- data/lib/geokit/geocoders/maxmind.rb +29 -0
- data/lib/geokit/geocoders/openstreetmap.rb +119 -0
- data/lib/geokit/geocoders/ripe.rb +41 -0
- data/lib/geokit/{services → geocoders}/us_geocoder.rb +15 -20
- data/lib/geokit/{services → geocoders}/yahoo.rb +52 -55
- data/lib/geokit/geocoders/yandex.rb +61 -0
- data/lib/geokit/inflectors.rb +1 -2
- data/lib/geokit/lat_lng.rb +129 -0
- data/lib/geokit/mappable.rb +41 -424
- data/lib/geokit/multi_geocoder.rb +6 -2
- data/lib/geokit/polygon.rb +46 -0
- data/lib/geokit/version.rb +1 -1
- data/test/helper.rb +2 -12
- data/test/test_base_geocoder.rb +0 -10
- data/test/test_bing_geocoder.rb +60 -0
- data/test/test_fcc_geocoder.rb +23 -0
- data/test/test_free_geo_ip_geocoder.rb +23 -0
- data/test/test_geo_plugin_geocoder.rb +23 -0
- data/test/test_geonames_geocoder.rb +23 -0
- data/test/test_google_geocoder.rb +208 -235
- data/test/test_maxmind_geocoder.rb +35 -4
- data/test/test_multi_geocoder.rb +3 -1
- data/test/test_ripe_geocoder.rb +35 -0
- data/test/test_yahoo_geocoder.rb +0 -12
- metadata +78 -52
- data/LICENSE +0 -25
- data/Manifest.txt +0 -21
- data/data/GeoLiteCity.dat +0 -0
- data/lib/geokit/services/ca_geocoder.rb +0 -55
- data/lib/geokit/services/geo_plugin.rb +0 -31
- data/lib/geokit/services/geonames.rb +0 -53
- data/lib/geokit/services/google.rb +0 -158
- data/lib/geokit/services/ip.rb +0 -103
- data/lib/geokit/services/maxmind.rb +0 -39
- data/lib/geokit/services/openstreetmap.rb +0 -119
- data/lib/geokit/services/ripe.rb +0 -32
- data/lib/geokit/services/yandex.rb +0 -51
- data/test/test_google_geocoder3.rb +0 -238
- data/test/test_google_reverse_geocoder.rb +0 -49
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
Njg0YTQwYzRmMTIxZDhiYWVjMDJhZDI0M2UxNjYyNGNjZDc0NzI0NzNhMjcx
|
10
|
-
MTJkYjlhMmEyMzc3MDQwODIyZTIxOGE3NTkwOWVkOTgzMmU0YzgzYmU2ZDhi
|
11
|
-
Y2UwNDhhODM0NjkyODhjOGFjMTcwMTEyOTgxZDg1YjM4ZGYzN2Y=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OWYwOGNjZTRmYjJhODg0NzMxMWQ2MDg2Y2UyMGUxMGNlYzU2YmU0YzJjNTk3
|
14
|
-
YzdhM2JmMjYwMWIzZGU0ZWE3NDU0YWEyMWI3ZTQ2M2U4ZjRlNGE5NzEzY2M0
|
15
|
-
N2Y1NDNiMzA2NjZlOGM3MTg0ZDk5YTM3ZWI0YTQwZjQ4NjFlY2E=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 964d3db61abcfa9bbe2d95d74cfbd6dff9455184
|
4
|
+
data.tar.gz: ac8c3ac65b9f0348f92a482ccd216d4b9e6e3a5a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a7ad5b2491c7bd77d6704fd9e50c35d8860c013ee0e11e41f4e6e5d039a417166f664784e4895dca3fc876e748b91f17a0402d3be5ea66227270f52891d0ddf3
|
7
|
+
data.tar.gz: b88419201129e2cfb85ddd5301414cdb76cc69079895206e78a225a149e51f6dadb71ddc0ca032e95bfb64f257856dcb5858659b2cbe671f31e5400c20622a5f
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## 1.8.0
|
2
|
+
|
3
|
+
* Added Bing Geocoder
|
4
|
+
* Added freegeoip.net Geocoder
|
5
|
+
* Added MapQuest Geocoder
|
6
|
+
* Remove Google (v2) Geocoder and rename Google3 (v3) to Google
|
7
|
+
* Added tests for various gateways
|
8
|
+
* Greatly standarize, simplify and improve code
|
9
|
+
* Reorganise files
|
10
|
+
* MaxMind bug fixes
|
11
|
+
|
1
12
|
## 1.7.1
|
2
13
|
|
3
14
|
* Remove geoip require from MaxMind to avoid new dependency issues
|
data/Gemfile
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in geokit.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
+
gem 'pry', :platforms => :ruby_19
|
6
7
|
gem 'mime-types', '< 2.0', :platforms => :ruby_18
|
7
8
|
gem 'geoip' # for testing - only required for max_mind
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2013 Michael Noack, James Cox, Bill Eisenhauer & Andre Lewis
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.markdown
CHANGED
@@ -3,7 +3,7 @@ Geokit
|
|
3
3
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/geokit.png)](http://badge.fury.io/rb/geokit)
|
5
5
|
[![Build Status](https://travis-ci.org/geokit/geokit.png?branch=master)](https://travis-ci.org/geokit/geokit)
|
6
|
-
[![Coverage Status](https://coveralls.io/repos/geokit/geokit
|
6
|
+
[![Coverage Status](https://coveralls.io/repos/geokit/geokit/badge.png)](https://coveralls.io/r/geokit/geokit)
|
7
7
|
[![Dependency Status](https://gemnasium.com/geokit/geokit.png)](https://gemnasium.com/geokit/geokit)
|
8
8
|
[![Code Climate](https://codeclimate.com/github/geokit/geokit.png)](https://codeclimate.com/github/geokit/geokit)
|
9
9
|
|
@@ -17,25 +17,55 @@ The Geokit gem provides:
|
|
17
17
|
* Rectangular bounds calculations: is a point within a given rectangular bounds?
|
18
18
|
* Heading and midpoint calculations
|
19
19
|
|
20
|
-
Combine this gem with the [geokit-rails
|
20
|
+
Combine this gem with the [geokit-rails](http://github.com/geokit/geokit-rails) to get location-based finders for your Rails app.
|
21
21
|
|
22
22
|
* Repository at Github: [http://github.com/geokit/geokit](http://github.com/geokit/geokit).
|
23
23
|
* RDoc pages: [http://rdoc.info/github/geokit/geokit/master/frames](http://rdoc.info/github/geokit/geokit/master/frames)
|
24
|
-
|
24
|
+
|
25
|
+
## COMMUNICATION
|
26
|
+
|
27
|
+
* If you **need help**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/geokit). (Tag 'geokit' and we'll be alerted)
|
28
|
+
* If you **found a bug**, use GitHub issues.
|
29
|
+
* If you **have an idea**, use GitHub issues.
|
30
|
+
* If you'd like to **ask a general question**, use GitHub issues.
|
31
|
+
* If you **want to contribute**, submit a pull request.
|
25
32
|
|
26
33
|
## INSTALL
|
27
34
|
|
28
35
|
gem install geokit
|
29
36
|
|
37
|
+
## SUPPORTED GEOCODERS
|
38
|
+
|
39
|
+
### "regular" address geocoders
|
40
|
+
* Yahoo BOSS - requires an API key.
|
41
|
+
* Geocoder.us - may require authentication if performing more than the free request limit.
|
42
|
+
* Geocoder.ca - for Canada; may require authentication as well.
|
43
|
+
* Geonames - a free geocoder
|
44
|
+
* Bing
|
45
|
+
* Yandex
|
46
|
+
* MapQuest
|
47
|
+
|
48
|
+
### address geocoders that also provide reverse geocoding
|
49
|
+
* Google - requires an API key. Also supports multiple results and bounding box/country code biasing.
|
50
|
+
* FCC
|
51
|
+
* Open Street Map
|
52
|
+
|
53
|
+
### IP address geocoders
|
54
|
+
* IP - geocodes an IP address using hostip.info's web service.
|
55
|
+
* Geoplugin.net -- another IP address geocoder
|
56
|
+
* RIPE
|
57
|
+
* MaxMind
|
58
|
+
* freegeoip.net
|
59
|
+
|
30
60
|
## QUICK START
|
31
61
|
|
32
62
|
```ruby
|
33
63
|
irb> require 'rubygems'
|
34
64
|
irb> require 'geokit'
|
35
|
-
irb> a=Geokit::Geocoders::
|
65
|
+
irb> a=Geokit::Geocoders::GoogleGeocoder.geocode '140 Market St, San Francisco, CA'
|
36
66
|
irb> a.ll
|
37
67
|
=> 37.79363,-122.396116
|
38
|
-
irb> b=Geokit::Geocoders::
|
68
|
+
irb> b=Geokit::Geocoders::GoogleGeocoder.geocode '789 Geary St, San Francisco, CA'
|
39
69
|
irb> b.ll
|
40
70
|
=> 37.786217,-122.41619
|
41
71
|
irb> a.distance_to(b)
|
@@ -68,24 +98,23 @@ If you're using this gem by itself, here are the configuration options:
|
|
68
98
|
# is in seconds.
|
69
99
|
Geokit::Geocoders::request_timeout = 3
|
70
100
|
|
71
|
-
#
|
72
|
-
# These setting can be nil if not needed, otherwise,
|
101
|
+
# This setting can be used if web service calls must be routed through a proxy.
|
102
|
+
# These setting can be nil if not needed, otherwise, a valid URI must be
|
73
103
|
# filled in at a minimum. If the proxy requires authentication, the username
|
74
104
|
# and password can be provided as well.
|
75
|
-
Geokit::Geocoders::
|
76
|
-
Geokit::Geocoders::proxy_port = nil
|
77
|
-
Geokit::Geocoders::proxy_user = nil
|
78
|
-
Geokit::Geocoders::proxy_pass = nil
|
105
|
+
Geokit::Geocoders::proxy = 'https://user:password@host:port'
|
79
106
|
|
80
107
|
# This is your yahoo application key for the Yahoo Geocoder.
|
81
108
|
# See http://developer.yahoo.com/faq/index.html#appid
|
82
109
|
# and http://developer.yahoo.com/maps/rest/V1/geocode.html
|
83
110
|
Geokit::Geocoders::yahoo = 'REPLACE_WITH_YOUR_YAHOO_KEY'
|
84
111
|
|
85
|
-
# This is your Google Maps geocoder
|
112
|
+
# This is your Google Maps geocoder keys (all optional).
|
86
113
|
# See http://www.google.com/apis/maps/signup.html
|
87
114
|
# and http://www.google.com/apis/maps/documentation/#Geocoding_Examples
|
88
|
-
Geokit::Geocoders::
|
115
|
+
Geokit::Geocoders::google_client_id = ''
|
116
|
+
Geokit::Geocoders::google_cryptographic_key = ''
|
117
|
+
Geokit::Geocoders::google_channel = ''
|
89
118
|
|
90
119
|
# You can also set multiple API KEYS for different domains that may be directed to this same application.
|
91
120
|
# The domain from which the current user is being directed will automatically be updated for Geokit via
|
@@ -125,24 +154,6 @@ If you're using this gem by itself, here are the configuration options:
|
|
125
154
|
# Geokit::Geocoders::ip_provider_order = [:external,:geo_plugin,:ip]
|
126
155
|
```
|
127
156
|
|
128
|
-
If you're using this gem with the [geokit-rails plugin](http://github.com/geokit/geokit-rails), the plugin
|
129
|
-
creates a template with these settings and places it in `config/initializers/geokit_config.rb`.
|
130
|
-
|
131
|
-
## SUPPORTED GEOCODERS
|
132
|
-
|
133
|
-
### "regular" address geocoders
|
134
|
-
* Yahoo Geocoder - requires an API key.
|
135
|
-
* Geocoder.us - may require authentication if performing more than the free request limit.
|
136
|
-
* Geocoder.ca - for Canada; may require authentication as well.
|
137
|
-
* Geonames - a free geocoder
|
138
|
-
|
139
|
-
### address geocoders that also provide reverse geocoding
|
140
|
-
* Google Geocoder - requires an API key. Also supports multiple results and bounding box/country code biasing.
|
141
|
-
|
142
|
-
### IP address geocoders
|
143
|
-
* IP Geocoder - geocodes an IP address using hostip.info's web service.
|
144
|
-
* Geoplugin.net -- another IP address geocoder
|
145
|
-
|
146
157
|
### Google Geocoder Tricks
|
147
158
|
|
148
159
|
The Google Geocoder sports a number of useful tricks that elevate it a little bit above the rest of the currently supported geocoders. For starters, it returns a `suggested_bounds` property for all your geocoded results, so you can more easily decide where and how to center a map on the places you geocode. Here's a quick example:
|
@@ -223,16 +234,15 @@ mappable.rb contains the Mappable module, which provides basic
|
|
223
234
|
distance calculation methods, i.e., calculating the distance
|
224
235
|
between two points.
|
225
236
|
|
226
|
-
mappable.rb also contains LatLng, GeoLoc, and Bounds.
|
227
237
|
LatLng is a simple container for latitude and longitude, but
|
228
238
|
it's made more powerful by mixing in the above-mentioned Mappable
|
229
239
|
module -- therefore, you can calculate easily the distance between two
|
230
240
|
LatLng ojbects with `distance = first.distance_to(other)`
|
231
241
|
|
232
|
-
GeoLoc
|
242
|
+
GeoLoc represents an address or location which
|
233
243
|
has been geocoded. You can get the city, zipcode, street address, etc.
|
234
244
|
from a GeoLoc object. GeoLoc extends LatLng, so you also get lat/lng
|
235
|
-
AND the Mappable
|
245
|
+
AND the Mappable module goodness for free.
|
236
246
|
|
237
247
|
geocoders.rb contains all the geocoder implemenations. All the gercoders
|
238
248
|
inherit from a common base (class Geocoder) and implement the private method
|
@@ -269,8 +279,3 @@ You must then also require such extenal file back in your main geokit configurat
|
|
269
279
|
end
|
270
280
|
end
|
271
281
|
```
|
272
|
-
|
273
|
-
## GOOGLE GROUP
|
274
|
-
|
275
|
-
Follow the Google Group for updates and discussion on Geokit: http://groups.google.com/group/geokit
|
276
|
-
|
data/Rakefile
CHANGED
@@ -15,3 +15,18 @@ task :coverage do
|
|
15
15
|
ENV['COVERAGE'] = 'true'
|
16
16
|
Rake::Task['test'].invoke
|
17
17
|
end
|
18
|
+
|
19
|
+
desc "Downloads GeoLiteCity.dat from maxmind.com"
|
20
|
+
task :download_geolitecity do
|
21
|
+
total_size = nil
|
22
|
+
url = 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz'
|
23
|
+
progress_cb = lambda {|size| print("Downloaded #{size} of #{total_size} bytes\r") if total_size }
|
24
|
+
length_cb = lambda {|content_length| total_size = content_length }
|
25
|
+
require 'open-uri'
|
26
|
+
File.open("/tmp/GeoLiteCity.dat.gz", "wb") do |f|
|
27
|
+
open(url, 'rb', :progress_proc => progress_cb, :content_length_proc => length_cb ) do |downloaded_file|
|
28
|
+
f.write(downloaded_file.read)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
puts "\nDone."
|
32
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://dev.virtualearth.net/REST/v1/Locations/100%20Spear%20St,%20San%20Francisco,%20CA,%2094105-1522,%20US?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- ! '*/*'
|
12
|
+
User-Agent:
|
13
|
+
- Ruby
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: !binary |-
|
18
|
+
T0s=
|
19
|
+
headers:
|
20
|
+
!binary "Q2FjaGUtQ29udHJvbA==":
|
21
|
+
- !binary |-
|
22
|
+
bm8tY2FjaGU=
|
23
|
+
!binary "VHJhbnNmZXItRW5jb2Rpbmc=":
|
24
|
+
- !binary |-
|
25
|
+
Y2h1bmtlZA==
|
26
|
+
!binary "Q29udGVudC1UeXBl":
|
27
|
+
- !binary |-
|
28
|
+
YXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04
|
29
|
+
!binary "U2VydmVy":
|
30
|
+
- !binary |-
|
31
|
+
TWljcm9zb2Z0LUlJUy84LjA=
|
32
|
+
!binary "WC1CbS1UcmFjZWlk":
|
33
|
+
- !binary |-
|
34
|
+
NTU5ZWI3NGYxMWY4NDQyZjllN2VhNzJjMmI2OWU1YTM=
|
35
|
+
!binary "WC1CbS1TcnY=":
|
36
|
+
- !binary |-
|
37
|
+
U0lOTTAwMDAwOSwgU0lOTVNOVk0wMDAxNDUsIFNJTklQRVZNMDAwMDEw
|
38
|
+
!binary "WC1Ncy1CbS1Xcy1JbmZv":
|
39
|
+
- !binary |-
|
40
|
+
MA==
|
41
|
+
!binary "WC1Bc3BuZXQtVmVyc2lvbg==":
|
42
|
+
- !binary |-
|
43
|
+
NC4wLjMwMzE5
|
44
|
+
!binary "WC1Qb3dlcmVkLUJ5":
|
45
|
+
- !binary |-
|
46
|
+
QVNQLk5FVA==
|
47
|
+
!binary "RGF0ZQ==":
|
48
|
+
- !binary |-
|
49
|
+
U2F0LCAxNCBEZWMgMjAxMyAwNTo0MDo1MyBHTVQ=
|
50
|
+
body:
|
51
|
+
encoding: ASCII-8BIT
|
52
|
+
string: !binary |-
|
53
|
+
77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48UmVz
|
54
|
+
cG9uc2UgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
|
55
|
+
aGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8y
|
56
|
+
MDAxL1hNTFNjaGVtYSIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m
|
57
|
+
dC5jb20vc2VhcmNoL2xvY2FsL3dzL3Jlc3QvdjEiPjxDb3B5cmlnaHQ+Q29w
|
58
|
+
eXJpZ2h0IMKpIDIwMTMgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB
|
59
|
+
bGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIEFQSSBjYW5ub3QgYmUgYWNjZXNz
|
60
|
+
ZWQgYW5kIHRoZSBjb250ZW50IGFuZCBhbnkgcmVzdWx0cyBtYXkgbm90IGJl
|
61
|
+
IHVzZWQsIHJlcHJvZHVjZWQgb3IgdHJhbnNtaXR0ZWQgaW4gYW55IG1hbm5l
|
62
|
+
ciB3aXRob3V0IGV4cHJlc3Mgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gTWlj
|
63
|
+
cm9zb2Z0IENvcnBvcmF0aW9uLjwvQ29weXJpZ2h0PjxCcmFuZExvZ29Vcmk+
|
64
|
+
aHR0cDovL2Rldi52aXJ0dWFsZWFydGgubmV0L0JyYW5kaW5nL2xvZ29fcG93
|
65
|
+
ZXJlZF9ieS5wbmc8L0JyYW5kTG9nb1VyaT48U3RhdHVzQ29kZT4yMDA8L1N0
|
66
|
+
YXR1c0NvZGU+PFN0YXR1c0Rlc2NyaXB0aW9uPk9LPC9TdGF0dXNEZXNjcmlw
|
67
|
+
dGlvbj48QXV0aGVudGljYXRpb25SZXN1bHRDb2RlPlZhbGlkQ3JlZGVudGlh
|
68
|
+
bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD41NTllYjc0
|
69
|
+
ZjExZjg0NDJmOWU3ZWE3MmMyYjY5ZTVhM3xTSU5NMDAwMDA5fDAyLjAwLjE4
|
70
|
+
My4yMzAwfFNJTk1TTlZNMDAwMTQ1LCBTSU5JUEVWTTAwMDAxMDwvVHJhY2VJ
|
71
|
+
ZD48UmVzb3VyY2VTZXRzPjxSZXNvdXJjZVNldD48RXN0aW1hdGVkVG90YWw+
|
72
|
+
MTwvRXN0aW1hdGVkVG90YWw+PFJlc291cmNlcz48TG9jYXRpb24+PE5hbWU+
|
73
|
+
MTAwIFNwZWFyIFN0LCBTYW4gRnJhbmNpc2NvLCBDQSA5NDEwNTwvTmFtZT48
|
74
|
+
UG9pbnQ+PExhdGl0dWRlPjM3Ljc5MjE1MjQwNDc4NTI8L0xhdGl0dWRlPjxM
|
75
|
+
b25naXR1ZGU+LTEyMi4zOTM5OTcxOTIzODM8L0xvbmdpdHVkZT48L1BvaW50
|
76
|
+
PjxCb3VuZGluZ0JveD48U291dGhMYXRpdHVkZT4zNy43ODgyODk2ODcyMTQ1
|
77
|
+
MjI8L1NvdXRoTGF0aXR1ZGU+PFdlc3RMb25naXR1ZGU+LTEyMi40MDA1MTQy
|
78
|
+
MzQ5MjYzMjwvV2VzdExvbmdpdHVkZT48Tm9ydGhMYXRpdHVkZT4zNy43OTYw
|
79
|
+
MTUxMjIzNTU4NzU8L05vcnRoTGF0aXR1ZGU+PEVhc3RMb25naXR1ZGU+LTEy
|
80
|
+
Mi4zODc0ODAxNDk4Mzk2ODwvRWFzdExvbmdpdHVkZT48L0JvdW5kaW5nQm94
|
81
|
+
PjxFbnRpdHlUeXBlPkFkZHJlc3M8L0VudGl0eVR5cGU+PEFkZHJlc3M+PEFk
|
82
|
+
ZHJlc3NMaW5lPjEwMCBTcGVhciBTdDwvQWRkcmVzc0xpbmU+PEFkbWluRGlz
|
83
|
+
dHJpY3Q+Q0E8L0FkbWluRGlzdHJpY3Q+PEFkbWluRGlzdHJpY3QyPlNhbiBG
|
84
|
+
cmFuY2lzY28gQ28uPC9BZG1pbkRpc3RyaWN0Mj48Q291bnRyeVJlZ2lvbj5V
|
85
|
+
bml0ZWQgU3RhdGVzPC9Db3VudHJ5UmVnaW9uPjxGb3JtYXR0ZWRBZGRyZXNz
|
86
|
+
PjEwMCBTcGVhciBTdCwgU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDU8L0Zvcm1h
|
87
|
+
dHRlZEFkZHJlc3M+PExvY2FsaXR5PlNhbiBGcmFuY2lzY288L0xvY2FsaXR5
|
88
|
+
PjxQb3N0YWxDb2RlPjk0MTA1PC9Qb3N0YWxDb2RlPjwvQWRkcmVzcz48Q29u
|
89
|
+
ZmlkZW5jZT5IaWdoPC9Db25maWRlbmNlPjxNYXRjaENvZGU+R29vZDwvTWF0
|
90
|
+
Y2hDb2RlPjxHZW9jb2RlUG9pbnQ+PExhdGl0dWRlPjM3Ljc5MjE1MjQwNDc4
|
91
|
+
NTI8L0xhdGl0dWRlPjxMb25naXR1ZGU+LTEyMi4zOTM5OTcxOTIzODM8L0xv
|
92
|
+
bmdpdHVkZT48Q2FsY3VsYXRpb25NZXRob2Q+UGFyY2VsPC9DYWxjdWxhdGlv
|
93
|
+
bk1ldGhvZD48VXNhZ2VUeXBlPkRpc3BsYXk8L1VzYWdlVHlwZT48L0dlb2Nv
|
94
|
+
ZGVQb2ludD48R2VvY29kZVBvaW50PjxMYXRpdHVkZT4zNy43OTIzNjIyMTMx
|
95
|
+
MzQ4PC9MYXRpdHVkZT48TG9uZ2l0dWRlPi0xMjIuMzkzODI5MzQ1NzAzPC9M
|
96
|
+
b25naXR1ZGU+PENhbGN1bGF0aW9uTWV0aG9kPkludGVycG9sYXRpb248L0Nh
|
97
|
+
bGN1bGF0aW9uTWV0aG9kPjxVc2FnZVR5cGU+Um91dGU8L1VzYWdlVHlwZT48
|
98
|
+
L0dlb2NvZGVQb2ludD48L0xvY2F0aW9uPjwvUmVzb3VyY2VzPjwvUmVzb3Vy
|
99
|
+
Y2VTZXQ+PC9SZXNvdXJjZVNldHM+PC9SZXNwb25zZT4=
|
100
|
+
http_version:
|
101
|
+
recorded_at: Sat, 14 Dec 2013 05:40:44 GMT
|
102
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,91 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://dev.virtualearth.net/REST/v1/Locations/440%20King%20William%20Street,%20Adelaide,%20Australia?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- ! '*/*'
|
12
|
+
User-Agent:
|
13
|
+
- Ruby
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Cache-Control:
|
20
|
+
- no-cache
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Content-Type:
|
24
|
+
- application/xml; charset=utf-8
|
25
|
+
Server:
|
26
|
+
- Microsoft-IIS/8.0
|
27
|
+
X-Bm-Traceid:
|
28
|
+
- 2f00297848b04bf78f73efdb6c7b8c2b
|
29
|
+
X-Bm-Srv:
|
30
|
+
- SINM001003, SINMSNVM000034, SINMSNVM000039
|
31
|
+
X-Ms-Bm-Ws-Info:
|
32
|
+
- '0'
|
33
|
+
X-Aspnet-Version:
|
34
|
+
- 4.0.30319
|
35
|
+
X-Powered-By:
|
36
|
+
- ASP.NET
|
37
|
+
Date:
|
38
|
+
- Thu, 26 Dec 2013 09:48:30 GMT
|
39
|
+
body:
|
40
|
+
encoding: ASCII-8BIT
|
41
|
+
string: !binary |-
|
42
|
+
77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48UmVz
|
43
|
+
cG9uc2UgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
|
44
|
+
aGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8y
|
45
|
+
MDAxL1hNTFNjaGVtYSIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m
|
46
|
+
dC5jb20vc2VhcmNoL2xvY2FsL3dzL3Jlc3QvdjEiPjxDb3B5cmlnaHQ+Q29w
|
47
|
+
eXJpZ2h0IMKpIDIwMTMgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB
|
48
|
+
bGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIEFQSSBjYW5ub3QgYmUgYWNjZXNz
|
49
|
+
ZWQgYW5kIHRoZSBjb250ZW50IGFuZCBhbnkgcmVzdWx0cyBtYXkgbm90IGJl
|
50
|
+
IHVzZWQsIHJlcHJvZHVjZWQgb3IgdHJhbnNtaXR0ZWQgaW4gYW55IG1hbm5l
|
51
|
+
ciB3aXRob3V0IGV4cHJlc3Mgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gTWlj
|
52
|
+
cm9zb2Z0IENvcnBvcmF0aW9uLjwvQ29weXJpZ2h0PjxCcmFuZExvZ29Vcmk+
|
53
|
+
aHR0cDovL2Rldi52aXJ0dWFsZWFydGgubmV0L0JyYW5kaW5nL2xvZ29fcG93
|
54
|
+
ZXJlZF9ieS5wbmc8L0JyYW5kTG9nb1VyaT48U3RhdHVzQ29kZT4yMDA8L1N0
|
55
|
+
YXR1c0NvZGU+PFN0YXR1c0Rlc2NyaXB0aW9uPk9LPC9TdGF0dXNEZXNjcmlw
|
56
|
+
dGlvbj48QXV0aGVudGljYXRpb25SZXN1bHRDb2RlPlZhbGlkQ3JlZGVudGlh
|
57
|
+
bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD4yZjAwMjk3
|
58
|
+
ODQ4YjA0YmY3OGY3M2VmZGI2YzdiOGMyYnxTSU5NMDAxMDAzfDAyLjAwLjE4
|
59
|
+
My4yMzAwfFNJTk1TTlZNMDAwMDM0LCBTSU5NU05WTTAwMDAzOTwvVHJhY2VJ
|
60
|
+
ZD48UmVzb3VyY2VTZXRzPjxSZXNvdXJjZVNldD48RXN0aW1hdGVkVG90YWw+
|
61
|
+
MTwvRXN0aW1hdGVkVG90YWw+PFJlc291cmNlcz48TG9jYXRpb24+PE5hbWU+
|
62
|
+
NDAyLTQ0MCBLaW5nIFdpbGxpYW0gU3QsIEFkZWxhaWRlLCBTQSA1MDAwPC9O
|
63
|
+
YW1lPjxQb2ludD48TGF0aXR1ZGU+LTM0LjkzNDU4MjwvTGF0aXR1ZGU+PExv
|
64
|
+
bmdpdHVkZT4xMzguNjAwNzg0PC9Mb25naXR1ZGU+PC9Qb2ludD48Qm91bmRp
|
65
|
+
bmdCb3g+PFNvdXRoTGF0aXR1ZGU+LTM0LjkzODQ0NDcxNzU3MDY3NTwvU291
|
66
|
+
dGhMYXRpdHVkZT48V2VzdExvbmdpdHVkZT4xMzguNTk0NTAxOTcwOTYwOTU8
|
67
|
+
L1dlc3RMb25naXR1ZGU+PE5vcnRoTGF0aXR1ZGU+LTM0LjkzMDcxOTI4MjQy
|
68
|
+
OTMyMjwvTm9ydGhMYXRpdHVkZT48RWFzdExvbmdpdHVkZT4xMzguNjA3MDY2
|
69
|
+
MDI5MDM5MDY8L0Vhc3RMb25naXR1ZGU+PC9Cb3VuZGluZ0JveD48RW50aXR5
|
70
|
+
VHlwZT5BZGRyZXNzPC9FbnRpdHlUeXBlPjxBZGRyZXNzPjxBZGRyZXNzTGlu
|
71
|
+
ZT40MDItNDQwIEtpbmcgV2lsbGlhbSBTdDwvQWRkcmVzc0xpbmU+PEFkbWlu
|
72
|
+
RGlzdHJpY3Q+U0E8L0FkbWluRGlzdHJpY3Q+PENvdW50cnlSZWdpb24+QXVz
|
73
|
+
dHJhbGlhPC9Db3VudHJ5UmVnaW9uPjxGb3JtYXR0ZWRBZGRyZXNzPjQwMi00
|
74
|
+
NDAgS2luZyBXaWxsaWFtIFN0LCBBZGVsYWlkZSwgU0EgNTAwMDwvRm9ybWF0
|
75
|
+
dGVkQWRkcmVzcz48TG9jYWxpdHk+QWRlbGFpZGU8L0xvY2FsaXR5PjxQb3N0
|
76
|
+
YWxDb2RlPjUwMDA8L1Bvc3RhbENvZGU+PC9BZGRyZXNzPjxDb25maWRlbmNl
|
77
|
+
PkhpZ2g8L0NvbmZpZGVuY2U+PE1hdGNoQ29kZT5Hb29kPC9NYXRjaENvZGU+
|
78
|
+
PEdlb2NvZGVQb2ludD48TGF0aXR1ZGU+LTM0LjkzNDU4MjwvTGF0aXR1ZGU+
|
79
|
+
PExvbmdpdHVkZT4xMzguNjAwNzg0PC9Mb25naXR1ZGU+PENhbGN1bGF0aW9u
|
80
|
+
TWV0aG9kPlJvb2Z0b3A8L0NhbGN1bGF0aW9uTWV0aG9kPjxVc2FnZVR5cGU+
|
81
|
+
RGlzcGxheTwvVXNhZ2VUeXBlPjwvR2VvY29kZVBvaW50PjxHZW9jb2RlUG9p
|
82
|
+
bnQ+PExhdGl0dWRlPi0zNC45MzQ1ODkzODU5ODYzMjg8L0xhdGl0dWRlPjxM
|
83
|
+
b25naXR1ZGU+MTM4LjYwMDUwOTY0MzU1NDY5PC9Mb25naXR1ZGU+PENhbGN1
|
84
|
+
bGF0aW9uTWV0aG9kPkludGVycG9sYXRpb248L0NhbGN1bGF0aW9uTWV0aG9k
|
85
|
+
PjxVc2FnZVR5cGU+RGlzcGxheTwvVXNhZ2VUeXBlPjxVc2FnZVR5cGU+Um91
|
86
|
+
dGU8L1VzYWdlVHlwZT48L0dlb2NvZGVQb2ludD48L0xvY2F0aW9uPjwvUmVz
|
87
|
+
b3VyY2VzPjwvUmVzb3VyY2VTZXQ+PC9SZXNvdXJjZVNldHM+PC9SZXNwb25z
|
88
|
+
ZT4=
|
89
|
+
http_version:
|
90
|
+
recorded_at: Thu, 26 Dec 2013 09:48:29 GMT
|
91
|
+
recorded_with: VCR 2.8.0
|