drifter 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ {
2
+ "status": "ZERO_RESULTS",
3
+ "results": [ ]
4
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "status": "OK",
3
+ "results": [ {
4
+ "types": [ "locality", "political" ],
5
+ "formatted_address": "Westminster, London, UK",
6
+ "address_components": [ {
7
+ "long_name": "London",
8
+ "short_name": "London",
9
+ "types": [ "locality", "political" ]
10
+ }, {
11
+ "long_name": "Westminster",
12
+ "short_name": "Westminster",
13
+ "types": [ "administrative_area_level_3", "political" ]
14
+ }, {
15
+ "long_name": "Greater London",
16
+ "short_name": "Greater London",
17
+ "types": [ "administrative_area_level_2", "political" ]
18
+ }, {
19
+ "long_name": "England",
20
+ "short_name": "England",
21
+ "types": [ "administrative_area_level_1", "political" ]
22
+ }, {
23
+ "long_name": "United Kingdom",
24
+ "short_name": "GB",
25
+ "types": [ "country", "political" ]
26
+ } ],
27
+ "geometry": {
28
+ "location": {
29
+ "lat": 51.5001524,
30
+ "lng": -0.1262362
31
+ },
32
+ "location_type": "APPROXIMATE",
33
+ "viewport": {
34
+ "southwest": {
35
+ "lat": 51.3493528,
36
+ "lng": -0.3783580
37
+ },
38
+ "northeast": {
39
+ "lat": 51.7040647,
40
+ "lng": 0.1502295
41
+ }
42
+ },
43
+ "bounds": {
44
+ "southwest": {
45
+ "lat": 51.3493528,
46
+ "lng": -0.3783580
47
+ },
48
+ "northeast": {
49
+ "lat": 51.7040647,
50
+ "lng": 0.1502295
51
+ }
52
+ }
53
+ }
54
+ } ]
55
+ }
@@ -0,0 +1 @@
1
+ {"ResultSet":{"version":"1.0","Error":100,"ErrorMessage":"No location parameters","Locale":"us_US","Quality":0,"Found":0}}
@@ -0,0 +1 @@
1
+ {"ResultSet":{"version":"1.0","Error":0,"ErrorMessage":"No error","Locale":"us_US","Quality":40,"Found":10,"Results":[{"quality":40,"latitude":"35.267435","longitude":"-92.557244","offsetlat":"35.267435","offsetlon":"-92.557244","radius":1300,"name":"","line1":"","line2":"Springfield, AR","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Conway County","state":"Arkansas","country":"United States","countrycode":"US","statecode":"AR","countycode":"","uzip":"72157","hash":"","woeid":2498258,"woetype":7},{"quality":40,"latitude":"37.413710","longitude":"-102.616579","offsetlat":"37.413710","offsetlon":"-102.616579","radius":1700,"name":"","line1":"","line2":"Springfield, CO","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Baca County","state":"Colorado","country":"United States","countrycode":"US","statecode":"CO","countycode":"","uzip":"81073","hash":"","woeid":2498261,"woetype":7},{"quality":40,"latitude":"30.155135","longitude":"-85.616494","offsetlat":"30.155135","offsetlon":"-85.616494","radius":4200,"name":"","line1":"","line2":"Springfield, FL","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Bay County","state":"Florida","country":"United States","countrycode":"US","statecode":"FL","countycode":"","uzip":"32401","hash":"","woeid":2498262,"woetype":7},{"quality":40,"latitude":"32.370925","longitude":"-81.313430","offsetlat":"32.370925","offsetlon":"-81.313430","radius":2100,"name":"","line1":"","line2":"Springfield, GA","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Effingham County","state":"Georgia","country":"United States","countrycode":"US","statecode":"GA","countycode":"","uzip":"31329","hash":"","woeid":2498309,"woetype":7},{"quality":40,"latitude":"43.081285","longitude":"-112.682309","offsetlat":"43.081285","offsetlon":"-112.682309","radius":1400,"name":"","line1":"","line2":"Springfield, ID","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Bingham County","state":"Idaho","country":"United States","countrycode":"US","statecode":"ID","countycode":"","uzip":"83277","hash":"","woeid":2498318,"woetype":7},{"quality":40,"latitude":"39.801055","longitude":"-89.643604","offsetlat":"39.801055","offsetlon":"-89.643604","radius":16000,"name":"","line1":"","line2":"Springfield, IL","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Sangamon County","state":"Illinois","country":"United States","countrycode":"US","statecode":"IL","countycode":"","uzip":"62701","hash":"","woeid":2498306,"woetype":7},{"quality":40,"latitude":"37.685450","longitude":"-85.222674","offsetlat":"37.685450","offsetlon":"-85.222674","radius":2600,"name":"","line1":"","line2":"Springfield, KY","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Washington County","state":"Kentucky","country":"United States","countrycode":"US","statecode":"KY","countycode":"WA","uzip":"40069","hash":"","woeid":2498275,"woetype":7},{"quality":40,"latitude":"30.428810","longitude":"-90.549239","offsetlat":"30.428810","offsetlon":"-90.549239","radius":2200,"name":"","line1":"","line2":"Springfield, LA","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Livingston Parish","state":"Louisiana","country":"United States","countrycode":"US","statecode":"LA","countycode":"","uzip":"70462","hash":"","woeid":2498276,"woetype":7},{"quality":40,"latitude":"45.395384","longitude":"-68.137404","offsetlat":"45.395384","offsetlon":"-68.137404","radius":8600,"name":"","line1":"","line2":"Springfield, ME","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Penobscot County","state":"Maine","country":"United States","countrycode":"US","statecode":"ME","countycode":"","uzip":"04487","hash":"","woeid":2498314,"woetype":7},{"quality":40,"latitude":"42.101250","longitude":"-72.589294","offsetlat":"42.101250","offsetlon":"-72.589294","radius":11800,"name":"","line1":"","line2":"Springfield, MA","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Springfield","county":"Hampden County","state":"Massachusetts","country":"United States","countrycode":"US","statecode":"MA","countycode":"","uzip":"01103","hash":"","woeid":2498304,"woetype":7}]}}
@@ -0,0 +1 @@
1
+ {"ResultSet":{"version":"1.0","Error":0,"ErrorMessage":"No error","Locale":"us_US","Quality":10,"Found":0}}
@@ -0,0 +1 @@
1
+ {"ResultSet":{"version":"1.0","Error":0,"ErrorMessage":"No error","Locale":"us_US","Quality":40,"Found":1,"Results":[{"quality":40,"latitude":"53.578450","longitude":"-2.426664","offsetlat":"53.578450","offsetlon":"-2.426664","radius":71500,"name":"","line1":"","line2":"Bolton","line3":"","line4":"United Kingdom","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"Bolton","county":"Lancashire","state":"England","country":"United Kingdom","countrycode":"GB","statecode":"ENG","countycode":"LAN","uzip":"BL1 1","hash":"","woeid":12602160,"woetype":9}]}}
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'ruby-debug'
3
+ require 'fakeweb'
4
+ require 'test/unit'
5
+
6
+ $: << File.expand_path('../../lib', __FILE__)
7
+ require 'drifter'
8
+
9
+
10
+ # nodoc
11
+ def open_web_response(filename)
12
+ path_to_file = [File.dirname(__FILE__), 'responses', filename].join('/')
13
+ File.open(path_to_file, 'r') { |f| f.read }
14
+ end
15
+
16
+
17
+ # nodoc
18
+ def save_web_response(uri, filename)
19
+ path_to_file = [File.dirname(__FILE__), 'responses', filename].join('/')
20
+ response = Net::HTTP.get(uri.host, uri.request_uri)
21
+ File.open(path_to_file, 'w') { |f| f.write response }
22
+ end
@@ -0,0 +1,76 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class YahooGeocoderTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ Drifter::Geocoders::Yahoo.api_key = "foo"
7
+ end
8
+
9
+ # checks that the given Location object has the the expected values when Geocoded using Yahoo
10
+ def assert_yahoo_location(data, loc)
11
+ assert_equal :yahoo, loc.geocoder
12
+ assert_equal :hash, loc.raw_data_format
13
+ assert_equal data["city"], loc.city
14
+ assert_equal data["state"], loc.state
15
+ assert_equal data["postal"], loc.post_code
16
+ assert_equal data["countrycode"], loc.country_code
17
+ assert_equal data["latitude"], loc.lat
18
+ assert_equal data["longitude"], loc.lng
19
+ end
20
+
21
+
22
+ # nodoc
23
+ def stub_response(response_file)
24
+ response = open_web_response(response_file)
25
+ rx = Regexp.new(Drifter::Geocoders::Yahoo.base_uri)
26
+ FakeWeb.register_uri(:get, rx, :body => response)
27
+
28
+ results = Drifter::Geocoders::Yahoo.geocode("springfield")
29
+ data = JSON.parse(response)
30
+ error = Drifter::Geocoders::Yahoo.last_error
31
+
32
+ return results, data, error
33
+ end
34
+
35
+
36
+ # nodoc
37
+ def test_error
38
+ results, data, error = stub_response('yahoo_error')
39
+ assert_nil results
40
+ assert_equal data["ResultSet"]["ErrorMessage"], error[:message]
41
+ assert_equal data["ResultSet"]["Error"], error[:code]
42
+ end
43
+
44
+
45
+ # nodoc
46
+ def test_success_with_no_results
47
+ results, data, error = stub_response('yahoo_no_results')
48
+ assert_nil error
49
+ assert results.is_a?(Array)
50
+ assert results.empty?
51
+ end
52
+
53
+
54
+ # nodoc
55
+ def test_success_with_one_result
56
+ results, data, error = stub_response('yahoo_one_result')
57
+ assert_nil error
58
+ assert results.is_a?(Array)
59
+ assert_equal 1, results.size
60
+ assert_yahoo_location data["ResultSet"]["Results"].first, results.first
61
+ end
62
+
63
+
64
+ # ndoc
65
+ def test_success_with_many_results
66
+ results, data, error = stub_response('yahoo_many_results')
67
+ assert_nil error
68
+ assert results.is_a?(Array)
69
+ assert_equal data["ResultSet"]["Found"], results.size
70
+ results.each_with_index do |loc, i|
71
+ loc_data = data["ResultSet"]["Results"][i]
72
+ assert_yahoo_location loc_data, loc
73
+ end
74
+ end
75
+
76
+ end
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: drifter
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Ahmed Adam
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-01-22 00:00:00 +00:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: json
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 11
30
+ segments:
31
+ - 1
32
+ - 4
33
+ - 6
34
+ version: 1.4.6
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ description:
38
+ email:
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files: []
44
+
45
+ files:
46
+ - .gitignore
47
+ - Gemfile
48
+ - README
49
+ - README.rdoc
50
+ - Rakefile
51
+ - drifter.gemspec
52
+ - lib/drifter.rb
53
+ - lib/drifter/distance/haversine.rb
54
+ - lib/drifter/geocoders.rb
55
+ - lib/drifter/geocoders/base.rb
56
+ - lib/drifter/geocoders/google.rb
57
+ - lib/drifter/geocoders/hostip.rb
58
+ - lib/drifter/geocoders/yahoo.rb
59
+ - lib/drifter/location.rb
60
+ - lib/drifter/location/locatable.rb
61
+ - lib/drifter/version.rb
62
+ - test/google_geocoder_test.rb
63
+ - test/locatable_test.rb
64
+ - test/location_test.rb
65
+ - test/responses/google_error
66
+ - test/responses/google_many_results
67
+ - test/responses/google_no_results
68
+ - test/responses/google_one_result
69
+ - test/responses/yahoo_error
70
+ - test/responses/yahoo_many_results
71
+ - test/responses/yahoo_no_results
72
+ - test/responses/yahoo_one_result
73
+ - test/test_helper.rb
74
+ - test/yahoo_geocoder_test.rb
75
+ has_rdoc: true
76
+ homepage: http://github.com/ahmedrb/drifter
77
+ licenses: []
78
+
79
+ post_install_message:
80
+ rdoc_options: []
81
+
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ hash: 3
99
+ segments:
100
+ - 0
101
+ version: "0"
102
+ requirements: []
103
+
104
+ rubyforge_project: drifter
105
+ rubygems_version: 1.3.7
106
+ signing_key:
107
+ specification_version: 3
108
+ summary: Simple geocoding library for ruby
109
+ test_files: []
110
+