gpx 0.2 → 0.3
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.
- data/lib/gpx/gpx.rb +7 -10
- data/lib/gpx/gpx_file.rb +17 -10
- data/lib/gpx/point.rb +1 -1
- data/lib/gpx/route.rb +3 -3
- data/lib/gpx/waypoint.rb +20 -3
- data/tests/gpx10_test.rb +1 -1
- data/tests/gpx_file_test.rb +9 -0
- data/tests/gpx_files/routes.gpx +9 -1
- data/tests/gpx_files/waypoints.gpx +20 -1
- data/tests/magellan_test.rb +1 -1
- data/tests/route_test.rb +63 -0
- data/tests/segment_test.rb +1 -1
- data/tests/track_file_test.rb +1 -1
- data/tests/track_test.rb +1 -1
- data/tests/waypoint_test.rb +44 -0
- metadata +43 -33
data/lib/gpx/gpx.rb
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
module GPX
|
24
|
-
VERSION = "0.
|
24
|
+
VERSION = "0.3"
|
25
25
|
|
26
26
|
# A common base class which provides a useful initializer method to many
|
27
27
|
# class in the GPX library.
|
@@ -34,16 +34,13 @@ module GPX
|
|
34
34
|
# an attribute to be initialized on the instance. This means you don't
|
35
35
|
# have to pick out individual text elements in each initializer of each
|
36
36
|
# class (Route, TrackPoint, Track, etc). Just pass an array of possible
|
37
|
-
# attributes to this method.
|
38
|
-
def instantiate_with_text_elements(parent, text_elements)
|
37
|
+
# attributes to this method.
|
38
|
+
def instantiate_with_text_elements(parent, text_elements, ns)
|
39
39
|
text_elements.each do |el|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
#{el}=#{val}
|
45
|
-
code
|
46
|
-
class_eval code
|
40
|
+
child_xpath = "gpx:#{el}"
|
41
|
+
unless parent.find(child_xpath, ns).empty?
|
42
|
+
val = parent.find(child_xpath, ns).first.content
|
43
|
+
self.send("#{el}=", val)
|
47
44
|
end
|
48
45
|
end
|
49
46
|
|
data/lib/gpx/gpx_file.rb
CHANGED
@@ -34,6 +34,8 @@ module GPX
|
|
34
34
|
# puts "Duration: #{gpx_file.duration}"
|
35
35
|
# puts "Bounds: #{gpx_file.bounds}"
|
36
36
|
#
|
37
|
+
# To read a GPX file from a string, use :gpx_data.
|
38
|
+
# gpx_file = GPXFile.new(:gpx_data => '<xml ...><gpx>...</gpx>)
|
37
39
|
# To create a new blank GPXFile instance:
|
38
40
|
# gpx_file = GPXFile.new
|
39
41
|
# Note that you can pass in any instance variables to this form of the initializer, including Tracks or Segments:
|
@@ -42,16 +44,20 @@ module GPX
|
|
42
44
|
#
|
43
45
|
def initialize(opts = {})
|
44
46
|
@duration = 0
|
45
|
-
if(opts[:gpx_file])
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
47
|
+
if(opts[:gpx_file] or opts[:gpx_data])
|
48
|
+
if opts[:gpx_file]
|
49
|
+
gpx_file = opts[:gpx_file]
|
50
|
+
#case gpx_file
|
51
|
+
#when String
|
52
|
+
# gpx_file = File.open(gpx_file)
|
53
|
+
#end
|
54
|
+
gpx_file = gpx_file.name if gpx_file.is_a?(File)
|
55
|
+
@xml = XML::Document.file(gpx_file)
|
56
|
+
else
|
57
|
+
parser = XML::Parser.new
|
58
|
+
parser.string = opts[:gpx_data]
|
59
|
+
@xml = parser.parse
|
60
|
+
end
|
55
61
|
# set XML namespace for XML find
|
56
62
|
if @xml.root.namespace_node
|
57
63
|
@ns = 'gpx:' + @xml.root.namespace_node.href
|
@@ -59,6 +65,7 @@ module GPX
|
|
59
65
|
@ns = 'gpx:http://www.topografix.com/GPX/1/1' # default to GPX 1.1
|
60
66
|
end
|
61
67
|
|
68
|
+
reset_meta_data
|
62
69
|
bounds_element = (@xml.find("//gpx:gpx/gpx:metadata/gpx:bounds", @ns).to_a.first rescue nil)
|
63
70
|
if bounds_element
|
64
71
|
@bounds.min_lat = get_bounds_attr_value(bounds_element, %w{ min_lat minlat minLat })
|
data/lib/gpx/point.rb
CHANGED
@@ -25,7 +25,7 @@ module GPX
|
|
25
25
|
# The base class for all points. Trackpoint and Waypoint both descend from this base class.
|
26
26
|
class Point < Base
|
27
27
|
D_TO_R = PI/180.0;
|
28
|
-
attr_accessor :lat, :lon, :time, :elevation
|
28
|
+
attr_accessor :lat, :lon, :time, :elevation, :gpx_file
|
29
29
|
|
30
30
|
# When you need to manipulate individual points, you can create a Point
|
31
31
|
# object with a latitude, a longitude, an elevation, and a time. In
|
data/lib/gpx/route.rb
CHANGED
@@ -33,10 +33,10 @@ module GPX
|
|
33
33
|
def initialize(opts = {})
|
34
34
|
rte_element = opts[:element]
|
35
35
|
@gpx_file = opts[:gpx_file]
|
36
|
-
@name = rte_element.find("child::gpx:name", @ns).first.content
|
36
|
+
@name = rte_element.find("child::gpx:name", @gpx_file.ns).first.content
|
37
37
|
@points = []
|
38
|
-
rte_element.find("child::gpx:rtept", @ns).each do |point|
|
39
|
-
@points << Point.new(:element => point)
|
38
|
+
rte_element.find("child::gpx:rtept", @gpx_file.ns).each do |point|
|
39
|
+
@points << Point.new(:element => point, :gpx_file => @gpx_file)
|
40
40
|
end
|
41
41
|
|
42
42
|
end
|
data/lib/gpx/waypoint.rb
CHANGED
@@ -27,9 +27,10 @@ module GPX
|
|
27
27
|
# not seen much use yet, since WalkingBoss does not use waypoints right now.
|
28
28
|
class Waypoint < Point
|
29
29
|
|
30
|
-
SUB_ELEMENTS = %
|
30
|
+
SUB_ELEMENTS = %w{ magvar geoidheight name cmt desc src link sym type fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions }
|
31
31
|
|
32
32
|
attr_reader :gpx_file
|
33
|
+
SUB_ELEMENTS.each { |sub_el| attr_accessor sub_el.to_sym }
|
33
34
|
|
34
35
|
# Not implemented
|
35
36
|
def crop(area)
|
@@ -42,9 +43,25 @@ module GPX
|
|
42
43
|
# Initializes a waypoint from a XML::Node.
|
43
44
|
def initialize(opts = {})
|
44
45
|
wpt_elem = opts[:element]
|
45
|
-
super(:element => wpt_elem)
|
46
|
-
instantiate_with_text_elements(wpt_elem, SUB_ELEMENTS)
|
47
46
|
@gpx_file = opts[:gpx_file]
|
47
|
+
super(:element => wpt_elem, :gpx_file => @gpx_file)
|
48
|
+
instantiate_with_text_elements(wpt_elem, SUB_ELEMENTS, @gpx_file.ns)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Prints out a friendly summary of this track (sans points). Useful for
|
52
|
+
# debugging and sanity checks.
|
53
|
+
def to_s
|
54
|
+
result = "Waypoint \n"
|
55
|
+
result << "\tName: #{name}\n"
|
56
|
+
result << "\tLatitude: #{lat} \n"
|
57
|
+
result << "\tLongitude: #{lon} \n"
|
58
|
+
result << "\tElevation: #{elevation}\n "
|
59
|
+
result << "\tTime: #{time}\n"
|
60
|
+
SUB_ELEMENTS.each do |sub_element_attribute|
|
61
|
+
val = self.send(sub_element_attribute)
|
62
|
+
result << "\t#{sub_element_attribute}: #{val}\n" unless val.nil?
|
63
|
+
end
|
64
|
+
result
|
48
65
|
end
|
49
66
|
|
50
67
|
# Converts a waypoint to a XML::Node.
|
data/tests/gpx10_test.rb
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.dirname(__FILE__) + '/../lib/gpx'
|
3
|
+
|
4
|
+
class GPXFileTest < Test::Unit::TestCase
|
5
|
+
ONE_TRACK_FILE = File.join(File.dirname(__FILE__), "gpx_files/one_track.gpx")
|
6
|
+
def test_load_data
|
7
|
+
GPX::GPXFile.new(:gpx_data => open(ONE_TRACK_FILE).read)
|
8
|
+
end
|
9
|
+
end
|
data/tests/gpx_files/routes.gpx
CHANGED
@@ -1 +1,9 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="Link2GPS - 2.0.2 - http://www.hiketech.com" xsi:schemaLocation="ttp://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"><metadata><name><![CDATA[routes.gpx]]></name><time>2006-01-02T08:55:34Z</time><bounds min_lat="39.989739" min_lon="-105.295285" max_lat="39.999840" max_lon="-105.214696"/></metadata><extensions/>
|
3
|
+
<rte><name><![CDATA[GRG-CA-TO]]></name>
|
4
|
+
<rtept lat="39.997298" lon="-105.292674"><name><![CDATA[GRG-CA]]></name><sym>Waypoint</sym><ele>1766.535</ele></rtept>
|
5
|
+
<rtept lat="39.995700" lon="-105.292805"><name><![CDATA[AMPTHT]]></name><sym>Waypoint</sym><ele>1854.735</ele></rtept>
|
6
|
+
<rtept lat="39.989739" lon="-105.295285"><name><![CDATA[TO]]></name><sym>Waypoint</sym><ele>2163.556</ele></rtept></rte>
|
7
|
+
<rte><name><![CDATA[SBDR-SBDR]]></name>
|
8
|
+
<rtept lat="39.999840" lon="-105.214696"><name><![CDATA[SBDR]]></name><sym>Waypoint</sym><ele>1612.965</ele></rtept></rte>
|
9
|
+
</gpx>
|
@@ -1 +1,20 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="Link2GPS - 2.0.2 - http://www.hiketech.com" xsi:schemaLocation="ttp://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"><metadata><name><![CDATA[waypoints.gpx]]></name><time>2006-01-02T08:55:21Z</time><bounds min_lat="25.061783" min_lon="-111.946110" max_lat="50.982883" max_lon="121.640267"/></metadata><extensions/>
|
3
|
+
<wpt lat="40.035557" lon="-105.248268"><name><![CDATA[001]]></name><sym>Waypoint</sym><ele>1639.161</ele><cmt><![CDATA[001]]></cmt><desc><![CDATA[Just some waypoint...]]></desc></wpt>
|
4
|
+
<wpt lat="39.993070" lon="-105.296588"><name><![CDATA[002]]></name><sym>Waypoint</sym><ele>1955.192</ele></wpt>
|
5
|
+
<wpt lat="39.990151" lon="-105.295680"><name><![CDATA[003]]></name><sym>Waypoint</sym><ele>2129.91</ele></wpt>
|
6
|
+
<wpt lat="39.990157" lon="-105.295686"><name><![CDATA[004]]></name><sym>Waypoint</sym><ele>2136.399</ele></wpt>
|
7
|
+
<wpt lat="39.990134" lon="-105.295251"><name><![CDATA[005]]></name><sym>Waypoint</sym><ele>2174.612</ele></wpt>
|
8
|
+
<wpt lat="39.990116" lon="-105.295147"><name><![CDATA[006]]></name><sym>Waypoint</sym><ele>2156.106</ele></wpt>
|
9
|
+
<wpt lat="39.990099" lon="-105.295207"><name><![CDATA[007]]></name><sym>Waypoint</sym><ele>2155.145</ele></wpt>
|
10
|
+
<wpt lat="39.990067" lon="-105.295185"><name><![CDATA[008]]></name><sym>Waypoint</sym><ele>2152.021</ele></wpt>
|
11
|
+
<wpt lat="39.995700" lon="-105.292805"><name><![CDATA[AMPTHT]]></name><sym>Waypoint</sym><ele>1854.735</ele></wpt>
|
12
|
+
<wpt lat="38.855550" lon="-94.799017"><name><![CDATA[GARMIN]]></name><sym>Waypoint</sym><ele>325.0491</ele></wpt>
|
13
|
+
<wpt lat="39.997298" lon="-105.292674"><name><![CDATA[GRG-CA]]></name><sym>Waypoint</sym><ele>1766.535</ele></wpt>
|
14
|
+
<wpt lat="50.982883" lon="-1.463900"><name><![CDATA[GRMEUR]]></name><sym>Waypoint</sym><ele>35.93469</ele></wpt>
|
15
|
+
<wpt lat="33.330190" lon="-111.946110"><name><![CDATA[GRMPHX]]></name><sym>Waypoint</sym><ele>361.0981</ele></wpt>
|
16
|
+
<wpt lat="25.061783" lon="121.640267"><name><![CDATA[GRMTWN]]></name><sym>Waypoint</sym><ele>38.09766</ele></wpt>
|
17
|
+
<wpt lat="39.999840" lon="-105.214696"><name><![CDATA[SBDR]]></name><sym>Waypoint</sym><ele>1612.965</ele></wpt>
|
18
|
+
<wpt lat="39.989739" lon="-105.295285"><name><![CDATA[TO]]></name><sym>Waypoint</sym><ele>2163.556</ele></wpt>
|
19
|
+
<wpt lat="40.035301" lon="-105.254443"><name><![CDATA[VICS]]></name><sym>Waypoint</sym><ele>1535.34</ele></wpt>
|
20
|
+
</gpx>
|
data/tests/magellan_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require File.dirname(__FILE__) + '/../lib/gpx'
|
3
3
|
|
4
|
-
class
|
4
|
+
class MagellanTest < Test::Unit::TestCase
|
5
5
|
MAGELLAN_TRACK_LOG = File.join(File.dirname(__FILE__), "gpx_files/magellan_track.log")
|
6
6
|
GPX_FILE = File.join(File.dirname(__FILE__), "gpx_files/one_segment.gpx")
|
7
7
|
|
data/tests/route_test.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.dirname(__FILE__) + '/../lib/gpx'
|
3
|
+
|
4
|
+
class RouteTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_read_routes
|
7
|
+
gpx = GPX::GPXFile.new(:gpx_file => File.join(File.dirname(__FILE__), "gpx_files/routes.gpx"))
|
8
|
+
assert_equal(2, gpx.routes.size)
|
9
|
+
first_route = gpx.routes.first
|
10
|
+
assert_equal(3, first_route.points.size)
|
11
|
+
assert_equal('GRG-CA-TO', first_route.name)
|
12
|
+
|
13
|
+
|
14
|
+
# Route 1, First Point
|
15
|
+
# <rtept lat="39.997298" lon="-105.292674">
|
16
|
+
# <name><![CDATA[GRG-CA]]></name>
|
17
|
+
# <sym>Waypoint</sym>
|
18
|
+
# <ele>1766.535</ele>
|
19
|
+
# </rtept>
|
20
|
+
assert_equal(39.997298, first_route.points[0].lat)
|
21
|
+
assert_equal(-105.292674, first_route.points[0].lon)
|
22
|
+
assert_equal(1766.535, first_route.points[0].elevation)
|
23
|
+
|
24
|
+
|
25
|
+
# Route 1, Second Point
|
26
|
+
# <rtept lat="39.995700" lon="-105.292805">
|
27
|
+
# <name><![CDATA[AMPTHT]]></name>
|
28
|
+
# <sym>Waypoint</sym>
|
29
|
+
# <ele>1854.735</ele>
|
30
|
+
# </rtept>
|
31
|
+
assert_equal(39.995700, first_route.points[1].lat)
|
32
|
+
assert_equal(-105.292805, first_route.points[1].lon)
|
33
|
+
assert_equal(1854.735, first_route.points[1].elevation)
|
34
|
+
|
35
|
+
# Route 1, Third Point
|
36
|
+
# <rtept lat="39.989739" lon="-105.295285">
|
37
|
+
# <name><![CDATA[TO]]></name>
|
38
|
+
# <sym>Waypoint</sym>
|
39
|
+
# <ele>2163.556</ele>
|
40
|
+
# </rtept>
|
41
|
+
assert_equal(39.989739, first_route.points[2].lat)
|
42
|
+
assert_equal(-105.295285, first_route.points[2].lon)
|
43
|
+
assert_equal(2163.556, first_route.points[2].elevation)
|
44
|
+
|
45
|
+
|
46
|
+
second_route = gpx.routes[1]
|
47
|
+
assert_equal(1, second_route.points.size)
|
48
|
+
assert_equal('SBDR-SBDR', second_route.name)
|
49
|
+
|
50
|
+
# Route 2, Only Point
|
51
|
+
# <rtept lat="39.999840" lon="-105.214696">
|
52
|
+
# <name><![CDATA[SBDR]]></name>
|
53
|
+
# <sym>Waypoint</sym>
|
54
|
+
# <ele>1612.965</ele>
|
55
|
+
# </rtept>
|
56
|
+
assert_equal(39.999840, second_route.points[0].lat)
|
57
|
+
assert_equal(-105.214696, second_route.points[0].lon)
|
58
|
+
assert_equal(1612.965, second_route.points[0].elevation)
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
end
|
data/tests/segment_test.rb
CHANGED
data/tests/track_file_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require File.dirname(__FILE__) + '/../lib/gpx'
|
3
3
|
|
4
|
-
class
|
4
|
+
class TrackFileTest < Test::Unit::TestCase
|
5
5
|
TRACK_FILE = File.join(File.dirname(__FILE__), "gpx_files/tracks.gpx")
|
6
6
|
OTHER_TRACK_FILE = File.join(File.dirname(__FILE__), "gpx_files/arches.gpx")
|
7
7
|
|
data/tests/track_test.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.dirname(__FILE__) + '/../lib/gpx'
|
3
|
+
|
4
|
+
class WaypointTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_read_waypoints
|
7
|
+
|
8
|
+
gpx = GPX::GPXFile.new(:gpx_file => File.join(File.dirname(__FILE__), "gpx_files/waypoints.gpx"))
|
9
|
+
assert_equal(17, gpx.waypoints.size)
|
10
|
+
|
11
|
+
# First Waypoint
|
12
|
+
# <wpt lat="40.035557" lon="-105.248268">
|
13
|
+
# <name><![CDATA[001]]></name>
|
14
|
+
# <sym>Waypoint</sym>
|
15
|
+
# <ele>1639.161</ele>
|
16
|
+
# <cmt><![CDATA[001]]></cmt>
|
17
|
+
# <desc><![CDATA[Just some waypoint...]]></desc>
|
18
|
+
# </wpt>
|
19
|
+
|
20
|
+
first_wpt = gpx.waypoints[0]
|
21
|
+
assert_equal(40.035557, first_wpt.lat)
|
22
|
+
assert_equal(-105.248268, first_wpt.lon)
|
23
|
+
assert_equal('001', first_wpt.name)
|
24
|
+
assert_equal('001', first_wpt.cmt)
|
25
|
+
assert_equal('Just some waypoint...', first_wpt.desc)
|
26
|
+
assert_equal('Waypoint', first_wpt.sym)
|
27
|
+
assert_equal(1639.161, first_wpt.elevation)
|
28
|
+
|
29
|
+
# Second Waypoint
|
30
|
+
# <wpt lat="39.993070" lon="-105.296588">
|
31
|
+
# <name><![CDATA[002]]></name>
|
32
|
+
# <sym>Waypoint</sym>
|
33
|
+
# <ele>1955.192</ele>
|
34
|
+
# </wpt>
|
35
|
+
second_wpt = gpx.waypoints[1]
|
36
|
+
assert_equal(39.993070, second_wpt.lat)
|
37
|
+
assert_equal(-105.296588, second_wpt.lon)
|
38
|
+
assert_equal('002', second_wpt.name)
|
39
|
+
assert_equal('Waypoint', second_wpt.sym)
|
40
|
+
assert_equal(1955.192, second_wpt.elevation)
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
metadata
CHANGED
@@ -1,33 +1,26 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: gpx
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "0.
|
7
|
-
date: 2007-11-29 00:00:00 -07:00
|
8
|
-
summary: A basic API for reading and writing GPX files.
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: doug.fales@gmail.com
|
12
|
-
homepage: http://gpx.rubyforge.com/
|
13
|
-
rubyforge_project:
|
14
|
-
description: A basic API for reading and writing GPX files.
|
15
|
-
autorequire: gpx
|
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:
|
4
|
+
version: "0.3"
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Doug Fales
|
8
|
+
autorequire: gpx
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-02-11 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: A basic API for reading and writing GPX files.
|
17
|
+
email: doug.fales@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
31
24
|
files:
|
32
25
|
- lib/gpx
|
33
26
|
- lib/gpx/bounds.rb
|
@@ -42,6 +35,7 @@ files:
|
|
42
35
|
- lib/gpx/waypoint.rb
|
43
36
|
- lib/gpx.rb
|
44
37
|
- tests/gpx10_test.rb
|
38
|
+
- tests/gpx_file_test.rb
|
45
39
|
- tests/gpx_files
|
46
40
|
- tests/gpx_files/arches.gpx
|
47
41
|
- tests/gpx_files/gpx10.gpx
|
@@ -52,22 +46,38 @@ files:
|
|
52
46
|
- tests/gpx_files/tracks.gpx
|
53
47
|
- tests/gpx_files/waypoints.gpx
|
54
48
|
- tests/magellan_test.rb
|
49
|
+
- tests/route_test.rb
|
55
50
|
- tests/segment_test.rb
|
56
51
|
- tests/track_file_test.rb
|
57
52
|
- tests/track_test.rb
|
53
|
+
- tests/waypoint_test.rb
|
58
54
|
- Rakefile
|
59
55
|
- README
|
60
|
-
|
61
|
-
|
56
|
+
has_rdoc: true
|
57
|
+
homepage: http://gpx.rubyforge.com/
|
58
|
+
post_install_message:
|
62
59
|
rdoc_options: []
|
63
60
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
61
|
+
require_paths:
|
62
|
+
- lib
|
63
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: "0"
|
68
|
+
version:
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
70
75
|
requirements: []
|
71
76
|
|
72
|
-
|
77
|
+
rubyforge_project:
|
78
|
+
rubygems_version: 1.0.1
|
79
|
+
signing_key:
|
80
|
+
specification_version: 2
|
81
|
+
summary: A basic API for reading and writing GPX files.
|
82
|
+
test_files: []
|
73
83
|
|