graticule 1.0.0.pre2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/geocode +0 -0
- data/lib/graticule.rb +2 -0
- data/lib/graticule/geocoder/bogus.rb +1 -1
- data/lib/graticule/geocoder/geonames.rb +1 -1
- data/lib/graticule/geocoder/google.rb +4 -1
- data/lib/graticule/geocoder/host_ip.rb +1 -1
- data/lib/graticule/version.rb +3 -0
- metadata +73 -131
- data/.autotest +0 -13
- data/.gitignore +0 -6
- data/Rakefile +0 -123
- data/VERSION +0 -1
- data/graticule.gemspec +0 -199
- data/init.rb +0 -2
- data/site/index.html +0 -114
- data/site/plugin.html +0 -82
- data/site/stylesheets/style.css +0 -69
- data/test/config.yml.default +0 -33
- data/test/fixtures/responses/freethepostcode/not_found.txt +0 -3
- data/test/fixtures/responses/freethepostcode/success.txt +0 -2
- data/test/fixtures/responses/geocoder_ca/success.xml +0 -12
- data/test/fixtures/responses/geocoder_us/success.xml +0 -8
- data/test/fixtures/responses/geocoder_us/unknown.xml +0 -1
- data/test/fixtures/responses/geonames/missing.xml +0 -4
- data/test/fixtures/responses/geonames/success.xml +0 -14
- data/test/fixtures/responses/geonames/unknown.xml +0 -4
- data/test/fixtures/responses/google/badkey.xml +0 -1
- data/test/fixtures/responses/google/limit.xml +0 -10
- data/test/fixtures/responses/google/missing_address.xml +0 -1
- data/test/fixtures/responses/google/only_coordinates.xml +0 -1
- data/test/fixtures/responses/google/partial.xml +0 -16
- data/test/fixtures/responses/google/server_error.xml +0 -10
- data/test/fixtures/responses/google/success.xml +0 -16
- data/test/fixtures/responses/google/success_multiple_results.xml +0 -88
- data/test/fixtures/responses/google/unavailable.xml +0 -1
- data/test/fixtures/responses/google/unknown_address.xml +0 -8
- data/test/fixtures/responses/host_ip/private.txt +0 -4
- data/test/fixtures/responses/host_ip/success.txt +0 -4
- data/test/fixtures/responses/host_ip/unknown.txt +0 -4
- data/test/fixtures/responses/local_search_maps/empty.txt +0 -1
- data/test/fixtures/responses/local_search_maps/not_found.txt +0 -1
- data/test/fixtures/responses/local_search_maps/success.txt +0 -1
- data/test/fixtures/responses/mapquest/multi_result.xml +0 -1
- data/test/fixtures/responses/mapquest/success.xml +0 -1
- data/test/fixtures/responses/multimap/missing_params.xml +0 -4
- data/test/fixtures/responses/multimap/no_matches.xml +0 -4
- data/test/fixtures/responses/multimap/success.xml +0 -19
- data/test/fixtures/responses/yahoo/success.xml +0 -3
- data/test/fixtures/responses/yahoo/unknown_address.xml +0 -6
- data/test/graticule/distance_test.rb +0 -58
- data/test/graticule/geocoder/freethepostcode_test.rb +0 -36
- data/test/graticule/geocoder/geocoder_ca_test.rb +0 -41
- data/test/graticule/geocoder/geocoder_us_test.rb +0 -43
- data/test/graticule/geocoder/geocoders.rb +0 -55
- data/test/graticule/geocoder/geonames_test.rb +0 -48
- data/test/graticule/geocoder/google_test.rb +0 -107
- data/test/graticule/geocoder/host_ip_test.rb +0 -40
- data/test/graticule/geocoder/local_search_maps_test.rb +0 -30
- data/test/graticule/geocoder/mapquest_test.rb +0 -49
- data/test/graticule/geocoder/multi_test.rb +0 -51
- data/test/graticule/geocoder/multimap_test.rb +0 -52
- data/test/graticule/geocoder/yahoo_test.rb +0 -49
- data/test/graticule/geocoder_test.rb +0 -23
- data/test/graticule/location_test.rb +0 -86
- data/test/graticule/precision_test.rb +0 -37
- data/test/mocks/uri.rb +0 -52
- data/test/test_helper.rb +0 -30
data/bin/geocode
CHANGED
File without changes
|
data/lib/graticule.rb
CHANGED
@@ -3,7 +3,7 @@ module Graticule #:nodoc:
|
|
3
3
|
# Bogus geocoder that can be used for test purposes
|
4
4
|
class Bogus
|
5
5
|
# A queue of canned responses
|
6
|
-
|
6
|
+
class_attribute :responses
|
7
7
|
self.responses = []
|
8
8
|
|
9
9
|
# A default location to use if the responses queue is empty
|
@@ -35,7 +35,7 @@ module Graticule #:nodoc:
|
|
35
35
|
|
36
36
|
# Extracts and raises an error from +xml+, if any.
|
37
37
|
def check_error(response) #:nodoc:
|
38
|
-
if response.status
|
38
|
+
if response && response.status
|
39
39
|
case response.status.value
|
40
40
|
when 14 then
|
41
41
|
raise Error, reponse.status.message
|
@@ -52,7 +52,6 @@ module Graticule #:nodoc:
|
|
52
52
|
has_one :address, Address
|
53
53
|
|
54
54
|
attr_reader :longitude, :latitude
|
55
|
-
delegate :accuracy, :to => :address, :allow_nil => true
|
56
55
|
|
57
56
|
with_options :deep => true, :namespace => 'urn:oasis:names:tc:ciq:xsdschema:xAL:2.0' do |map|
|
58
57
|
map.element :street, String, :tag => 'ThoroughfareName'
|
@@ -66,6 +65,10 @@ module Graticule #:nodoc:
|
|
66
65
|
@longitude, @latitude, _ = coordinates.split(',').map { |v| v.to_f }
|
67
66
|
end
|
68
67
|
|
68
|
+
def accuracy
|
69
|
+
address.accuracy if address
|
70
|
+
end
|
71
|
+
|
69
72
|
def precision
|
70
73
|
PRECISION[accuracy] || :unknown
|
71
74
|
end
|
@@ -22,7 +22,7 @@ module Graticule #:nodoc:
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def parse_response(response) #:nodoc:
|
25
|
-
|
25
|
+
Location.new.tap do |location|
|
26
26
|
location.latitude = response['Latitude']
|
27
27
|
location.longitude = response['Longitude']
|
28
28
|
location.locality, location.region = response['City'].split(', ')
|
metadata
CHANGED
@@ -1,37 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graticule
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
version: 2.0.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Brandon Keepers
|
13
|
+
- Daniel Morrison
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2010-
|
18
|
+
date: 2010-10-01 00:00:00 -04:00
|
13
19
|
default_executable: geocode
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
22
|
+
prerelease: false
|
23
|
+
type: :runtime
|
24
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
requirement: *id001
|
16
32
|
name: activesupport
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
prerelease: false
|
17
35
|
type: :runtime
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
20
37
|
requirements:
|
21
38
|
- - ">="
|
22
39
|
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 0
|
23
42
|
version: "0"
|
24
|
-
|
43
|
+
requirement: *id002
|
44
|
+
name: i18n
|
25
45
|
- !ruby/object:Gem::Dependency
|
26
|
-
|
46
|
+
prerelease: false
|
27
47
|
type: :runtime
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
48
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
30
49
|
requirements:
|
31
50
|
- - ">="
|
32
51
|
- !ruby/object:Gem::Version
|
52
|
+
segments:
|
53
|
+
- 0
|
54
|
+
- 3
|
55
|
+
- 0
|
33
56
|
version: 0.3.0
|
34
|
-
|
57
|
+
requirement: *id003
|
58
|
+
name: happymapper
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
prerelease: false
|
61
|
+
type: :development
|
62
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
segments:
|
67
|
+
- 0
|
68
|
+
version: "0"
|
69
|
+
requirement: *id004
|
70
|
+
name: mocha
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
prerelease: false
|
73
|
+
type: :development
|
74
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
version: "0"
|
81
|
+
requirement: *id005
|
82
|
+
name: rcov
|
35
83
|
description: Graticule is a geocoding API that provides a common interface to all the popular services, including Google, Yahoo, Geocoder.us, and MetaCarta.
|
36
84
|
email: brandon@opensoul.org
|
37
85
|
executables:
|
@@ -41,24 +89,13 @@ extensions: []
|
|
41
89
|
extra_rdoc_files:
|
42
90
|
- README.txt
|
43
91
|
files:
|
44
|
-
- .autotest
|
45
|
-
- .gitignore
|
46
|
-
- CHANGELOG.txt
|
47
|
-
- LICENSE.txt
|
48
|
-
- README.txt
|
49
|
-
- Rakefile
|
50
|
-
- VERSION
|
51
92
|
- bin/geocode
|
52
|
-
- graticule.gemspec
|
53
|
-
- init.rb
|
54
|
-
- lib/graticule.rb
|
55
93
|
- lib/graticule/cli.rb
|
56
94
|
- lib/graticule/core_ext.rb
|
57
|
-
- lib/graticule/distance.rb
|
58
95
|
- lib/graticule/distance/haversine.rb
|
59
96
|
- lib/graticule/distance/spherical.rb
|
60
97
|
- lib/graticule/distance/vincenty.rb
|
61
|
-
- lib/graticule/
|
98
|
+
- lib/graticule/distance.rb
|
62
99
|
- lib/graticule/geocoder/base.rb
|
63
100
|
- lib/graticule/geocoder/bogus.rb
|
64
101
|
- lib/graticule/geocoder/freethepostcode.rb
|
@@ -72,61 +109,14 @@ files:
|
|
72
109
|
- lib/graticule/geocoder/multi.rb
|
73
110
|
- lib/graticule/geocoder/multimap.rb
|
74
111
|
- lib/graticule/geocoder/yahoo.rb
|
112
|
+
- lib/graticule/geocoder.rb
|
75
113
|
- lib/graticule/location.rb
|
76
114
|
- lib/graticule/precision.rb
|
77
|
-
-
|
78
|
-
-
|
79
|
-
-
|
80
|
-
-
|
81
|
-
-
|
82
|
-
- test/fixtures/responses/freethepostcode/success.txt
|
83
|
-
- test/fixtures/responses/geocoder_ca/success.xml
|
84
|
-
- test/fixtures/responses/geocoder_us/success.xml
|
85
|
-
- test/fixtures/responses/geocoder_us/unknown.xml
|
86
|
-
- test/fixtures/responses/geonames/missing.xml
|
87
|
-
- test/fixtures/responses/geonames/success.xml
|
88
|
-
- test/fixtures/responses/geonames/unknown.xml
|
89
|
-
- test/fixtures/responses/google/badkey.xml
|
90
|
-
- test/fixtures/responses/google/limit.xml
|
91
|
-
- test/fixtures/responses/google/missing_address.xml
|
92
|
-
- test/fixtures/responses/google/only_coordinates.xml
|
93
|
-
- test/fixtures/responses/google/partial.xml
|
94
|
-
- test/fixtures/responses/google/server_error.xml
|
95
|
-
- test/fixtures/responses/google/success.xml
|
96
|
-
- test/fixtures/responses/google/success_multiple_results.xml
|
97
|
-
- test/fixtures/responses/google/unavailable.xml
|
98
|
-
- test/fixtures/responses/google/unknown_address.xml
|
99
|
-
- test/fixtures/responses/host_ip/private.txt
|
100
|
-
- test/fixtures/responses/host_ip/success.txt
|
101
|
-
- test/fixtures/responses/host_ip/unknown.txt
|
102
|
-
- test/fixtures/responses/local_search_maps/empty.txt
|
103
|
-
- test/fixtures/responses/local_search_maps/not_found.txt
|
104
|
-
- test/fixtures/responses/local_search_maps/success.txt
|
105
|
-
- test/fixtures/responses/mapquest/multi_result.xml
|
106
|
-
- test/fixtures/responses/mapquest/success.xml
|
107
|
-
- test/fixtures/responses/multimap/missing_params.xml
|
108
|
-
- test/fixtures/responses/multimap/no_matches.xml
|
109
|
-
- test/fixtures/responses/multimap/success.xml
|
110
|
-
- test/fixtures/responses/yahoo/success.xml
|
111
|
-
- test/fixtures/responses/yahoo/unknown_address.xml
|
112
|
-
- test/graticule/distance_test.rb
|
113
|
-
- test/graticule/geocoder/freethepostcode_test.rb
|
114
|
-
- test/graticule/geocoder/geocoder_ca_test.rb
|
115
|
-
- test/graticule/geocoder/geocoder_us_test.rb
|
116
|
-
- test/graticule/geocoder/geocoders.rb
|
117
|
-
- test/graticule/geocoder/geonames_test.rb
|
118
|
-
- test/graticule/geocoder/google_test.rb
|
119
|
-
- test/graticule/geocoder/host_ip_test.rb
|
120
|
-
- test/graticule/geocoder/local_search_maps_test.rb
|
121
|
-
- test/graticule/geocoder/mapquest_test.rb
|
122
|
-
- test/graticule/geocoder/multi_test.rb
|
123
|
-
- test/graticule/geocoder/multimap_test.rb
|
124
|
-
- test/graticule/geocoder/yahoo_test.rb
|
125
|
-
- test/graticule/geocoder_test.rb
|
126
|
-
- test/graticule/location_test.rb
|
127
|
-
- test/graticule/precision_test.rb
|
128
|
-
- test/mocks/uri.rb
|
129
|
-
- test/test_helper.rb
|
115
|
+
- lib/graticule/version.rb
|
116
|
+
- lib/graticule.rb
|
117
|
+
- CHANGELOG.txt
|
118
|
+
- LICENSE.txt
|
119
|
+
- README.txt
|
130
120
|
has_rdoc: true
|
131
121
|
homepage: http://github.com/collectiveidea/graticule
|
132
122
|
licenses: []
|
@@ -143,70 +133,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
133
|
requirements:
|
144
134
|
- - ">="
|
145
135
|
- !ruby/object:Gem::Version
|
136
|
+
segments:
|
137
|
+
- 0
|
146
138
|
version: "0"
|
147
|
-
version:
|
148
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
140
|
requirements:
|
150
|
-
- - "
|
141
|
+
- - ">="
|
151
142
|
- !ruby/object:Gem::Version
|
152
|
-
|
153
|
-
|
143
|
+
segments:
|
144
|
+
- 0
|
145
|
+
version: "0"
|
154
146
|
requirements: []
|
155
147
|
|
156
148
|
rubyforge_project: graticule
|
157
|
-
rubygems_version: 1.3.
|
149
|
+
rubygems_version: 1.3.6
|
158
150
|
signing_key:
|
159
151
|
specification_version: 3
|
160
152
|
summary: API for using all the popular geocoding services.
|
161
|
-
test_files:
|
162
|
-
|
163
|
-
- test/config.yml.default
|
164
|
-
- test/fixtures/responses/freethepostcode/not_found.txt
|
165
|
-
- test/fixtures/responses/freethepostcode/success.txt
|
166
|
-
- test/fixtures/responses/geocoder_ca/success.xml
|
167
|
-
- test/fixtures/responses/geocoder_us/success.xml
|
168
|
-
- test/fixtures/responses/geocoder_us/unknown.xml
|
169
|
-
- test/fixtures/responses/geonames/missing.xml
|
170
|
-
- test/fixtures/responses/geonames/success.xml
|
171
|
-
- test/fixtures/responses/geonames/unknown.xml
|
172
|
-
- test/fixtures/responses/google/badkey.xml
|
173
|
-
- test/fixtures/responses/google/limit.xml
|
174
|
-
- test/fixtures/responses/google/missing_address.xml
|
175
|
-
- test/fixtures/responses/google/only_coordinates.xml
|
176
|
-
- test/fixtures/responses/google/partial.xml
|
177
|
-
- test/fixtures/responses/google/server_error.xml
|
178
|
-
- test/fixtures/responses/google/success.xml
|
179
|
-
- test/fixtures/responses/google/success_multiple_results.xml
|
180
|
-
- test/fixtures/responses/google/unavailable.xml
|
181
|
-
- test/fixtures/responses/google/unknown_address.xml
|
182
|
-
- test/fixtures/responses/host_ip/private.txt
|
183
|
-
- test/fixtures/responses/host_ip/success.txt
|
184
|
-
- test/fixtures/responses/host_ip/unknown.txt
|
185
|
-
- test/fixtures/responses/local_search_maps/empty.txt
|
186
|
-
- test/fixtures/responses/local_search_maps/not_found.txt
|
187
|
-
- test/fixtures/responses/local_search_maps/success.txt
|
188
|
-
- test/fixtures/responses/mapquest/multi_result.xml
|
189
|
-
- test/fixtures/responses/mapquest/success.xml
|
190
|
-
- test/fixtures/responses/multimap/missing_params.xml
|
191
|
-
- test/fixtures/responses/multimap/no_matches.xml
|
192
|
-
- test/fixtures/responses/multimap/success.xml
|
193
|
-
- test/fixtures/responses/yahoo/success.xml
|
194
|
-
- test/fixtures/responses/yahoo/unknown_address.xml
|
195
|
-
- test/graticule/distance_test.rb
|
196
|
-
- test/graticule/geocoder/freethepostcode_test.rb
|
197
|
-
- test/graticule/geocoder/geocoder_ca_test.rb
|
198
|
-
- test/graticule/geocoder/geocoder_us_test.rb
|
199
|
-
- test/graticule/geocoder/geocoders.rb
|
200
|
-
- test/graticule/geocoder/geonames_test.rb
|
201
|
-
- test/graticule/geocoder/google_test.rb
|
202
|
-
- test/graticule/geocoder/host_ip_test.rb
|
203
|
-
- test/graticule/geocoder/local_search_maps_test.rb
|
204
|
-
- test/graticule/geocoder/mapquest_test.rb
|
205
|
-
- test/graticule/geocoder/multi_test.rb
|
206
|
-
- test/graticule/geocoder/multimap_test.rb
|
207
|
-
- test/graticule/geocoder/yahoo_test.rb
|
208
|
-
- test/graticule/geocoder_test.rb
|
209
|
-
- test/graticule/location_test.rb
|
210
|
-
- test/graticule/precision_test.rb
|
211
|
-
- test/mocks/uri.rb
|
212
|
-
- test/test_helper.rb
|
153
|
+
test_files: []
|
154
|
+
|
data/.autotest
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
Autotest.add_hook :initialize do |at|
|
2
|
-
at.clear_mappings
|
3
|
-
|
4
|
-
at.add_mapping %r%^lib/(.*)\.rb$% do |_, m|
|
5
|
-
at.files_matching %r%^test/#{m[1]}_test.rb$%
|
6
|
-
end
|
7
|
-
|
8
|
-
at.add_mapping(%r%^test/.*\.rb$%) {|filename, _| filename }
|
9
|
-
|
10
|
-
at.add_mapping %r%^test/fixtures/(.*)s.yml% do |_, _|
|
11
|
-
at.files_matching %r%^test/.*\.rb$%
|
12
|
-
end
|
13
|
-
end
|
data/.gitignore
DELETED
data/Rakefile
DELETED
@@ -1,123 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require 'jeweler'
|
3
|
-
rescue LoadError
|
4
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
5
|
-
exit 1
|
6
|
-
end
|
7
|
-
require 'rubygems'
|
8
|
-
require 'activesupport'
|
9
|
-
require 'rake/testtask'
|
10
|
-
require 'rake/rdoctask'
|
11
|
-
require 'rcov/rcovtask'
|
12
|
-
|
13
|
-
Jeweler::Tasks.new do |s|
|
14
|
-
s.name = "graticule"
|
15
|
-
s.rubyforge_project = "graticule"
|
16
|
-
s.author = 'Brandon Keepers'
|
17
|
-
s.email = 'brandon@opensoul.org'
|
18
|
-
s.summary = "API for using all the popular geocoding services."
|
19
|
-
s.description = 'Graticule is a geocoding API that provides a common interface to all the popular services, including Google, Yahoo, Geocoder.us, and MetaCarta.'
|
20
|
-
s.homepage = "http://github.com/collectiveidea/graticule"
|
21
|
-
s.add_dependency "activesupport"
|
22
|
-
s.add_dependency 'happymapper', '>=0.3.0'
|
23
|
-
s.has_rdoc = true
|
24
|
-
s.extra_rdoc_files = ["README.txt"]
|
25
|
-
s.rdoc_options = ["--main", "README.rdoc", "--inline-source", "--line-numbers"]
|
26
|
-
s.test_files = Dir['test/**/*']
|
27
|
-
end
|
28
|
-
|
29
|
-
desc 'Default: run unit tests.'
|
30
|
-
task :default => :test
|
31
|
-
|
32
|
-
desc 'Run the unit tests'
|
33
|
-
Rake::TestTask.new(:test) do |t|
|
34
|
-
t.libs << 'lib' << 'test'
|
35
|
-
t.pattern = 'test/**/*_test.rb'
|
36
|
-
t.verbose = true
|
37
|
-
end
|
38
|
-
|
39
|
-
desc 'Generate documentatio'
|
40
|
-
Rake::RDocTask.new(:rdoc) do |rdoc|
|
41
|
-
rdoc.rdoc_dir = 'rdoc'
|
42
|
-
rdoc.title = 'Graticule'
|
43
|
-
rdoc.options << '--line-numbers' << '--inline-source'
|
44
|
-
rdoc.rdoc_files.include('README.txt')
|
45
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
46
|
-
end
|
47
|
-
|
48
|
-
namespace :test do
|
49
|
-
desc "just rcov minus html output"
|
50
|
-
Rcov::RcovTask.new(:coverage) do |t|
|
51
|
-
# t.libs << 'test'
|
52
|
-
t.test_files = FileList['test/**/*_test.rb']
|
53
|
-
t.output_dir = 'coverage'
|
54
|
-
t.verbose = true
|
55
|
-
t.rcov_opts = %w(--exclude test,/usr/lib/ruby,/Library/Ruby,$HOME/.gem --sort coverage)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
require 'rake/contrib/sshpublisher'
|
60
|
-
namespace :rubyforge do
|
61
|
-
|
62
|
-
desc "Release gem and RDoc documentation to RubyForge"
|
63
|
-
task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
|
64
|
-
|
65
|
-
namespace :release do
|
66
|
-
desc "Publish RDoc to RubyForge."
|
67
|
-
task :docs => [:rdoc] do
|
68
|
-
config = YAML.load(
|
69
|
-
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
70
|
-
)
|
71
|
-
|
72
|
-
host = "#{config['username']}@rubyforge.org"
|
73
|
-
remote_dir = "/var/www/gforge-projects/the-perfect-gem/"
|
74
|
-
local_dir = 'rdoc'
|
75
|
-
|
76
|
-
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
require 'active_support'
|
82
|
-
require 'net/http'
|
83
|
-
require 'uri'
|
84
|
-
RESPONSES_PATH = File.dirname(__FILE__) + '/test/fixtures/responses'
|
85
|
-
|
86
|
-
def cache_responses(service)
|
87
|
-
test_config[service.to_s]['responses'].each do |file,url|
|
88
|
-
File.open("#{RESPONSES_PATH}/#{service}/#{file}", 'w') do |f|
|
89
|
-
f.puts Net::HTTP.get(URI.parse(url))
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_config
|
95
|
-
file = File.dirname(__FILE__) + '/test/config.yml'
|
96
|
-
raise "Copy config.yml.default to config.yml and set the API keys" unless File.exists?(file)
|
97
|
-
@test_config ||= returning(YAML.load(File.read(file))) do |config|
|
98
|
-
config.each do |service,values|
|
99
|
-
values['responses'].each {|file,url| update_placeholders!(values, url) }
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def update_placeholders!(config, thing)
|
105
|
-
config.each do |option, value|
|
106
|
-
thing.gsub!(":#{option}", value) if value.is_a?(String)
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
namespace :test do
|
111
|
-
namespace :cache do
|
112
|
-
desc 'Cache test responses from all the geocoders'
|
113
|
-
task :all => test_config.keys
|
114
|
-
|
115
|
-
test_config.keys.each do |service|
|
116
|
-
desc "Cache test responses for #{service}"
|
117
|
-
task service do
|
118
|
-
cache_responses(service)
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|