metacarta-geoparser 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +27 -0
- data/Manifest.txt +6 -0
- data/README +41 -0
- data/Rakefile +69 -0
- data/lib/metacarta_geoparser.rb +119 -0
- data/test/test_metacarta_geoparser.rb +200 -0
- metadata +59 -0
data/LICENSE
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
Copyright 2006 Eric Hodel, The Robot Co-op. All rights reserved.
|
2
|
+
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
4
|
+
modification, are permitted provided that the following conditions
|
5
|
+
are met:
|
6
|
+
|
7
|
+
1. Redistributions of source code must retain the above copyright
|
8
|
+
notice, this list of conditions and the following disclaimer.
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright
|
10
|
+
notice, this list of conditions and the following disclaimer in the
|
11
|
+
documentation and/or other materials provided with the distribution.
|
12
|
+
3. Neither the names of the authors nor the names of their contributors
|
13
|
+
may be used to endorse or promote products derived from this software
|
14
|
+
without specific prior written permission.
|
15
|
+
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
17
|
+
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
19
|
+
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
|
20
|
+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
21
|
+
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
22
|
+
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
23
|
+
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
24
|
+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
25
|
+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
26
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
|
data/Manifest.txt
ADDED
data/README
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
= metacarta-geoparser
|
2
|
+
|
3
|
+
Rubyforge Project:
|
4
|
+
|
5
|
+
http://rubyforge.org/projects/rctools
|
6
|
+
|
7
|
+
Documentation:
|
8
|
+
|
9
|
+
http://dev.robotcoop.com/Libraries/metacarta-geoparser
|
10
|
+
|
11
|
+
== About
|
12
|
+
|
13
|
+
metacarta-geoparser implements MetaCarta's GeoParser API:
|
14
|
+
|
15
|
+
http://labs.metacarta.com/GeoParser/documentation.html
|
16
|
+
|
17
|
+
== Installing metacarta-geoparser
|
18
|
+
|
19
|
+
Just install the gem:
|
20
|
+
|
21
|
+
$ sudo gem install metacarta-geoparser
|
22
|
+
|
23
|
+
== Using metacarta-geoparser
|
24
|
+
|
25
|
+
You can use either +locate+ or +locations+ to locate places:
|
26
|
+
|
27
|
+
+locate+ returns just one location, but includes a confidence estimate:
|
28
|
+
|
29
|
+
gp = MetaCartaGeoParser.new
|
30
|
+
location = gp.locate 'baghdad'
|
31
|
+
p location.coordinates
|
32
|
+
p location.confidence
|
33
|
+
|
34
|
+
+locations+ returns a list of locations and a viewbox surrounding all of them.
|
35
|
+
|
36
|
+
gp = MetaCartaGeoParser.new
|
37
|
+
locations, viewbox = gp.locations 'seattle'
|
38
|
+
p locations.length
|
39
|
+
p location.first.coordinates
|
40
|
+
p viewbox
|
41
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rake/rdoctask'
|
5
|
+
require 'rake/gempackagetask'
|
6
|
+
|
7
|
+
$VERBOSE = nil
|
8
|
+
|
9
|
+
spec = Gem::Specification.new do |s|
|
10
|
+
s.name = 'metacarta-geoparser'
|
11
|
+
s.version = '1.0.0'
|
12
|
+
s.summary = 'MetaCarta GeoParser API Library'
|
13
|
+
s.description = 'Map addresses to latitude and longitude with MetaCarta\'s
|
14
|
+
GeoParser API.'
|
15
|
+
s.author = 'Eric Hodel'
|
16
|
+
s.email = 'eric@robotcoop.com'
|
17
|
+
|
18
|
+
s.has_rdoc = true
|
19
|
+
s.files = File.read('Manifest.txt').split($/)
|
20
|
+
s.require_path = 'lib'
|
21
|
+
|
22
|
+
s.add_dependency 'rc-rest', '>= 1.0.0'
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'Run tests'
|
26
|
+
task :default => [ :test ]
|
27
|
+
|
28
|
+
Rake::TestTask.new('test') do |t|
|
29
|
+
t.libs << '../rc-rest/lib'
|
30
|
+
t.pattern = 'test/test_*.rb'
|
31
|
+
t.verbose = true
|
32
|
+
end
|
33
|
+
|
34
|
+
desc 'Update Manifest.txt'
|
35
|
+
task :update_manifest do
|
36
|
+
sh "find . -type f | sed -e 's%./%%' | egrep -v 'svn|swp|~' | egrep -v '^(doc|pkg)/' | sort > Manifest.txt"
|
37
|
+
end
|
38
|
+
|
39
|
+
desc 'Generate RDoc'
|
40
|
+
Rake::RDocTask.new :rdoc do |rd|
|
41
|
+
rd.rdoc_dir = 'doc'
|
42
|
+
rd.rdoc_files.add 'lib', 'README', 'LICENSE'
|
43
|
+
rd.main = 'README'
|
44
|
+
rd.options << '-d' if `which dot` =~ /\/dot/
|
45
|
+
rd.options << '-t MetaCarta GeoParser'
|
46
|
+
end
|
47
|
+
|
48
|
+
desc 'Generate RDoc for dev.robotcoop.com'
|
49
|
+
Rake::RDocTask.new :dev_rdoc do |rd|
|
50
|
+
rd.rdoc_dir = '../../../www/trunk/dev/html/Libraries/google-geocode'
|
51
|
+
rd.rdoc_files.add 'lib', 'README', 'LICENSE'
|
52
|
+
rd.main = 'README'
|
53
|
+
rd.options << '-d' if `which dot` =~ /\/dot/
|
54
|
+
rd.options << '-t MetaCarta GeoParser'
|
55
|
+
end
|
56
|
+
|
57
|
+
desc 'Build Gem'
|
58
|
+
Rake::GemPackageTask.new spec do |pkg|
|
59
|
+
pkg.need_tar = true
|
60
|
+
end
|
61
|
+
|
62
|
+
desc 'Clean up'
|
63
|
+
task :clean => [ :clobber_rdoc, :clobber_package ]
|
64
|
+
|
65
|
+
desc 'Clean up'
|
66
|
+
task :clobber => [ :clean ]
|
67
|
+
|
68
|
+
# vim: syntax=Ruby
|
69
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
require 'rc_rest'
|
2
|
+
|
3
|
+
##
|
4
|
+
# Library for looking up coordinates with MetaCarta's GeoParser API.
|
5
|
+
#
|
6
|
+
# http://labs.metacarta.com/GeoParser/documentation.html
|
7
|
+
|
8
|
+
class MetaCartaGeoParser < RCRest
|
9
|
+
|
10
|
+
class Error < RCRest::Error; end
|
11
|
+
|
12
|
+
##
|
13
|
+
# Raised if a location couldn't be found.
|
14
|
+
|
15
|
+
class AddressError < Error; end
|
16
|
+
|
17
|
+
Location = Struct.new :name, :type, :population, :hierarchy,
|
18
|
+
:latitude, :longitude, :confidence, :viewbox
|
19
|
+
|
20
|
+
def initialize # :nodoc:
|
21
|
+
@url = URI.parse 'http://labs.metacarta.com/GeoParser/'
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# Locates +place+ and returns a Location object.
|
26
|
+
|
27
|
+
def locate(place)
|
28
|
+
locations, = get :q => place
|
29
|
+
return locations.first
|
30
|
+
end
|
31
|
+
|
32
|
+
##
|
33
|
+
# Retrieve all locations matching +place+.
|
34
|
+
#
|
35
|
+
# Returns an Array of Location objects and a pair of coordinates that will
|
36
|
+
# surround them.
|
37
|
+
|
38
|
+
def locations(place)
|
39
|
+
get :loc => place
|
40
|
+
end
|
41
|
+
|
42
|
+
def check_error(xml) # :nodoc:
|
43
|
+
raise AddressError, 'bad location' unless xml.elements['Locations/Location']
|
44
|
+
end
|
45
|
+
|
46
|
+
def make_url(params) # :nodoc:
|
47
|
+
params[:output] = 'locations'
|
48
|
+
|
49
|
+
super params
|
50
|
+
end
|
51
|
+
|
52
|
+
def parse_response(xml) # :nodoc:
|
53
|
+
locations = []
|
54
|
+
|
55
|
+
xml.elements['/Locations'].each do |l|
|
56
|
+
next if REXML::Text === l or l.name == 'ViewBox'
|
57
|
+
location = Location.new
|
58
|
+
|
59
|
+
location.viewbox = viewbox_coords l.elements['ViewBox/gml:Box/gml:coordinates']
|
60
|
+
|
61
|
+
location.name = l.attributes['Name']
|
62
|
+
location.type = l.attributes['Type']
|
63
|
+
population = l.attributes['Population'].to_i
|
64
|
+
location.population = population > 0 ? population : nil
|
65
|
+
location.hierarchy = l.attributes['Hierarchy']
|
66
|
+
|
67
|
+
coords = l.elements['Centroid/gml:Point/gml:coordinates'].text.split ','
|
68
|
+
location.latitude = coords.first.to_f
|
69
|
+
location.longitude = coords.last.to_f
|
70
|
+
|
71
|
+
confidence = l.elements['Confidence']
|
72
|
+
location.confidence = confidence.text.to_f if confidence
|
73
|
+
|
74
|
+
locations << location
|
75
|
+
end
|
76
|
+
|
77
|
+
query_viewbox = xml.elements['/Locations/ViewBox/gml:Box/gml:coordinates']
|
78
|
+
|
79
|
+
return locations, viewbox_coords(query_viewbox)
|
80
|
+
end
|
81
|
+
|
82
|
+
##
|
83
|
+
# Turns a element containing a pair of coordinates into a pair of coordinate
|
84
|
+
# Arrays.
|
85
|
+
|
86
|
+
def viewbox_coords(viewbox) # :nodoc:
|
87
|
+
return viewbox.text.split(' ').map do |coords|
|
88
|
+
coords.split(',').map { |c| c.to_f }
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
##
|
96
|
+
# A Location contains the following fields:
|
97
|
+
#
|
98
|
+
# +name+:: The name of this location
|
99
|
+
# +type+:: The type of this location (no clue what it means)
|
100
|
+
# +population+:: The number of people who live here or nil
|
101
|
+
# +hierarchy+:: The places above this place
|
102
|
+
# +latitude+:: Latitude of the location
|
103
|
+
# +longitude+:: Longitude of the location
|
104
|
+
# +confidence+:: Accuracy confidence (if any)
|
105
|
+
# +viewbox+:: Pair of coordinates forming a box around this place
|
106
|
+
#
|
107
|
+
# viewbox runs from lower left to upper right.
|
108
|
+
|
109
|
+
class MetaCartaGeoParser::Location
|
110
|
+
|
111
|
+
##
|
112
|
+
# The latitude and longitude for this location.
|
113
|
+
|
114
|
+
def coordinates
|
115
|
+
[latitude, longitude]
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
@@ -0,0 +1,200 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rc_rest/uri_stub'
|
3
|
+
require 'metacarta_geoparser'
|
4
|
+
|
5
|
+
class TestMetaCartaGeoParser < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
URI::HTTP.responses = []
|
9
|
+
URI::HTTP.uris = []
|
10
|
+
|
11
|
+
@mg = MetaCartaGeoParser.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_locate
|
15
|
+
URI::HTTP.responses << <<-EOF.strip
|
16
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
17
|
+
|
18
|
+
<!DOCTYPE Locations SYSTEM "Locations.dtd">
|
19
|
+
|
20
|
+
<Locations
|
21
|
+
xmlns:gml="http://www.opengis.net/gml"
|
22
|
+
CreatedBy="MetaCarta GeoParser v3.5.0-labs-alpha"
|
23
|
+
CreatedOn="Thu Jun 15 23:56:50 2006"
|
24
|
+
ConvertedFromBinaryFormat="False"
|
25
|
+
InputByteLength="0">
|
26
|
+
<ViewBox>
|
27
|
+
|
28
|
+
<gml:Box srsName="epsg:4326">
|
29
|
+
<gml:coordinates>26.238611,37.293889 40.438611,51.493889</gml:coordinates>
|
30
|
+
</gml:Box>
|
31
|
+
</ViewBox>
|
32
|
+
<Location
|
33
|
+
|
34
|
+
Name="Baghdad"
|
35
|
+
Type="PPLC"
|
36
|
+
Population="5672516"
|
37
|
+
Hierarchy="Iraq/Baghdad/Baghdad">
|
38
|
+
<ViewBox>
|
39
|
+
<gml:Box srsName="epsg:4326">
|
40
|
+
<gml:coordinates>26.238611,37.293889 40.438611,51.493889</gml:coordinates>
|
41
|
+
</gml:Box>
|
42
|
+
</ViewBox>
|
43
|
+
<RemainingQuery></RemainingQuery>
|
44
|
+
<Confidence>0.195185</Confidence> <Centroid><gml:Point><gml:coordinates>44.393889,33.338611</gml:coordinates></gml:Point></Centroid>
|
45
|
+
</Location>
|
46
|
+
</Locations>
|
47
|
+
EOF
|
48
|
+
|
49
|
+
expected = MetaCartaGeoParser::Location.new 'Baghdad', 'PPLC', 5672516,
|
50
|
+
'Iraq/Baghdad/Baghdad',
|
51
|
+
44.393889, 33.338611, 0.195185,
|
52
|
+
[[26.238611, 37.293889],
|
53
|
+
[40.438611, 51.493889]]
|
54
|
+
|
55
|
+
location = @mg.locate('baghdad')
|
56
|
+
assert_equal expected, location
|
57
|
+
assert_equal [44.393889, 33.338611], location.coordinates
|
58
|
+
|
59
|
+
assert_equal true, URI::HTTP.responses.empty?
|
60
|
+
assert_equal 1, URI::HTTP.uris.length
|
61
|
+
assert_equal 'http://labs.metacarta.com/GeoParser/?output=locations&q=baghdad',
|
62
|
+
URI::HTTP.uris.first
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_locate_bad_address
|
66
|
+
URI::HTTP.responses << <<-EOF.strip
|
67
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
68
|
+
|
69
|
+
<!DOCTYPE Locations SYSTEM "Locations.dtd">
|
70
|
+
|
71
|
+
<Locations
|
72
|
+
xmlns:gml="http://www.opengis.net/gml"
|
73
|
+
CreatedBy="MetaCarta GeoParser v3.5.0-labs-alpha"
|
74
|
+
CreatedOn="Sat Jun 17 02:05:42 2006"
|
75
|
+
ConvertedFromBinaryFormat="False"
|
76
|
+
InputByteLength="0">
|
77
|
+
<ViewBox>
|
78
|
+
|
79
|
+
<gml:Box srsName="epsg:4326">
|
80
|
+
<gml:coordinates>-90.000000,-180.000000 90.000000,180.000000</gml:coordinates>
|
81
|
+
</gml:Box>
|
82
|
+
</ViewBox>
|
83
|
+
</Locations>
|
84
|
+
EOF
|
85
|
+
|
86
|
+
@mg.locate('aoeueou')
|
87
|
+
rescue MetaCartaGeoParser::AddressError => e
|
88
|
+
assert_equal 'bad location', e.message
|
89
|
+
|
90
|
+
assert_equal true, URI::HTTP.responses.empty?
|
91
|
+
assert_equal 1, URI::HTTP.uris.length
|
92
|
+
assert_equal 'http://labs.metacarta.com/GeoParser/?output=locations&q=aoeueou',
|
93
|
+
URI::HTTP.uris.first
|
94
|
+
else
|
95
|
+
flunk 'expected MetaCartaGeoParser::AddressError'
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_locations
|
99
|
+
URI::HTTP.responses << <<-EOF.strip
|
100
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
101
|
+
|
102
|
+
<!DOCTYPE Locations SYSTEM "Locations.dtd">
|
103
|
+
|
104
|
+
<Locations
|
105
|
+
xmlns:gml="http://www.opengis.net/gml"
|
106
|
+
CreatedBy="MetaCarta GeoParser v3.5.0-labs-alpha"
|
107
|
+
CreatedOn="Sat Jun 17 02:14:05 2006"
|
108
|
+
ConvertedFromBinaryFormat="False"
|
109
|
+
InputByteLength="1">
|
110
|
+
<ViewBox>
|
111
|
+
|
112
|
+
<gml:Box srsName="epsg:4326">
|
113
|
+
<gml:coordinates>43.800000,-126.133333 51.406390,-118.530830</gml:coordinates>
|
114
|
+
</gml:Box>
|
115
|
+
</ViewBox>
|
116
|
+
<Location
|
117
|
+
|
118
|
+
Name="Seattle"
|
119
|
+
Type="PPL"
|
120
|
+
Population="563374"
|
121
|
+
Hierarchy="United States/Washington/King/Seattle">
|
122
|
+
<ViewBox>
|
123
|
+
<gml:Box srsName="epsg:4326">
|
124
|
+
<gml:coordinates>43.806390,-126.130830 51.406390,-118.530830</gml:coordinates>
|
125
|
+
</gml:Box>
|
126
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>-122.330830000000006,47.606389999999998</gml:coordinates></gml:Point></Centroid>
|
127
|
+
</Location>
|
128
|
+
<Location
|
129
|
+
|
130
|
+
Name="Seattle"
|
131
|
+
Type="PRT"
|
132
|
+
Population="-1"
|
133
|
+
Hierarchy="United States/Seattle">
|
134
|
+
<ViewBox>
|
135
|
+
<gml:Box srsName="epsg:4326">
|
136
|
+
<gml:coordinates>43.800000,-126.133333 51.400000,-118.533333</gml:coordinates>
|
137
|
+
</gml:Box>
|
138
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>-122.333332999999996,47.6</gml:coordinates></gml:Point></Centroid>
|
139
|
+
</Location>
|
140
|
+
</Locations>
|
141
|
+
EOF
|
142
|
+
|
143
|
+
expected = [
|
144
|
+
MetaCartaGeoParser::Location.new('Seattle', 'PPL', 563374,
|
145
|
+
'United States/Washington/King/Seattle',
|
146
|
+
-122.33083, 47.60639, nil,
|
147
|
+
[[43.806390, -126.130830],
|
148
|
+
[51.406390, -118.530830]]),
|
149
|
+
MetaCartaGeoParser::Location.new('Seattle', 'PRT', nil,
|
150
|
+
'United States/Seattle',
|
151
|
+
-122.333333, 47.6, nil,
|
152
|
+
[[43.8, -126.133333],
|
153
|
+
[51.4, -118.533333]]),
|
154
|
+
]
|
155
|
+
|
156
|
+
locations, viewbox = @mg.locations('seattle')
|
157
|
+
assert_equal expected, locations
|
158
|
+
assert_equal [[43.8, -126.133333], [51.40639, -118.53083]], viewbox
|
159
|
+
|
160
|
+
assert_equal true, URI::HTTP.responses.empty?
|
161
|
+
assert_equal 1, URI::HTTP.uris.length
|
162
|
+
assert_equal 'http://labs.metacarta.com/GeoParser/?loc=seattle&output=locations',
|
163
|
+
URI::HTTP.uris.first
|
164
|
+
end
|
165
|
+
|
166
|
+
def test_locations_bad_address
|
167
|
+
URI::HTTP.responses << <<-EOF.strip
|
168
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
169
|
+
|
170
|
+
<!DOCTYPE Locations SYSTEM "Locations.dtd">
|
171
|
+
|
172
|
+
<Locations
|
173
|
+
xmlns:gml="http://www.opengis.net/gml"
|
174
|
+
CreatedBy="MetaCarta GeoParser v3.5.0-labs-alpha"
|
175
|
+
CreatedOn="Sat Jun 17 02:05:42 2006"
|
176
|
+
ConvertedFromBinaryFormat="False"
|
177
|
+
InputByteLength="0">
|
178
|
+
<ViewBox>
|
179
|
+
|
180
|
+
<gml:Box srsName="epsg:4326">
|
181
|
+
<gml:coordinates>-90.000000,-180.000000 90.000000,180.000000</gml:coordinates>
|
182
|
+
</gml:Box>
|
183
|
+
</ViewBox>
|
184
|
+
</Locations>
|
185
|
+
EOF
|
186
|
+
|
187
|
+
@mg.locations('aoeueou')
|
188
|
+
rescue MetaCartaGeoParser::AddressError => e
|
189
|
+
assert_equal 'bad location', e.message
|
190
|
+
|
191
|
+
assert_equal true, URI::HTTP.responses.empty?
|
192
|
+
assert_equal 1, URI::HTTP.uris.length
|
193
|
+
assert_equal 'http://labs.metacarta.com/GeoParser/?loc=aoeueou&output=locations',
|
194
|
+
URI::HTTP.uris.first
|
195
|
+
else
|
196
|
+
flunk 'expected MetaCartaGeoParser::AddressError'
|
197
|
+
end
|
198
|
+
|
199
|
+
end
|
200
|
+
|
metadata
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.99
|
3
|
+
specification_version: 1
|
4
|
+
name: metacarta-geoparser
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 1.0.0
|
7
|
+
date: 2006-06-16 00:00:00 -07:00
|
8
|
+
summary: MetaCarta GeoParser API Library
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: eric@robotcoop.com
|
12
|
+
homepage:
|
13
|
+
rubyforge_project:
|
14
|
+
description: Map addresses to latitude and longitude with MetaCarta's GeoParser API.
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message:
|
29
|
+
authors:
|
30
|
+
- Eric Hodel
|
31
|
+
files:
|
32
|
+
- LICENSE
|
33
|
+
- Manifest.txt
|
34
|
+
- README
|
35
|
+
- Rakefile
|
36
|
+
- lib/metacarta_geoparser.rb
|
37
|
+
- test/test_metacarta_geoparser.rb
|
38
|
+
test_files: []
|
39
|
+
|
40
|
+
rdoc_options: []
|
41
|
+
|
42
|
+
extra_rdoc_files: []
|
43
|
+
|
44
|
+
executables: []
|
45
|
+
|
46
|
+
extensions: []
|
47
|
+
|
48
|
+
requirements: []
|
49
|
+
|
50
|
+
dependencies:
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: rc-rest
|
53
|
+
version_requirement:
|
54
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: 1.0.0
|
59
|
+
version:
|