gpx 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.2"
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
- unless parent.find(el).empty?
41
- val = parent.find(el).first.content
42
- code = <<-code
43
- attr_accessor #{ el }
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
 
@@ -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
- gpx_file = opts[:gpx_file]
47
- #case gpx_file
48
- #when String
49
- # gpx_file = File.open(gpx_file)
50
- #end
51
- gpx_file = gpx_file.name if gpx_file.is_a?(File)
52
- reset_meta_data
53
- @xml = XML::Document.file(gpx_file)
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 })
@@ -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
@@ -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
@@ -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 = %q{ magvar geoidheight name cmt desc src link sym type fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions }
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.
@@ -1,7 +1,7 @@
1
1
  require 'test/unit'
2
2
  require File.dirname(__FILE__) + '/../lib/gpx'
3
3
 
4
- class TestGPX10 < Test::Unit::TestCase
4
+ class GPX10Test < Test::Unit::TestCase
5
5
  GPX_FILE = File.join(File.dirname(__FILE__), "gpx_files/gpx10.gpx")
6
6
 
7
7
  def test_read
@@ -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
@@ -1 +1,9 @@
1
- <?xml version="1.0" encoding="UTF-8"?><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/><rte><name><![CDATA[GRG-CA-TO]]></name><rtept lat="39.997298" lon="-105.292674"><name><![CDATA[GRG-CA]]></name><sym>Waypoint</sym><ele>1766.535</ele></rtept><rtept lat="39.995700" lon="-105.292805"><name><![CDATA[AMPTHT]]></name><sym>Waypoint</sym><ele>1854.735</ele></rtept><rtept lat="39.989739" lon="-105.295285"><name><![CDATA[TO]]></name><sym>Waypoint</sym><ele>2163.556</ele></rtept></rte><rte><name><![CDATA[SBDR-SBDR]]></name><rtept lat="39.999840" lon="-105.214696"><name><![CDATA[SBDR]]></name><sym>Waypoint</sym><ele>1612.965</ele></rtept></rte></gpx>
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"?><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/><wpt lat="40.035557" lon="-105.248268"><name><![CDATA[001]]></name><sym>Waypoint</sym><ele>1639.161</ele></wpt><wpt lat="39.993070" lon="-105.296588"><name><![CDATA[002]]></name><sym>Waypoint</sym><ele>1955.192</ele></wpt><wpt lat="39.990151" lon="-105.295680"><name><![CDATA[003]]></name><sym>Waypoint</sym><ele>2129.91</ele></wpt><wpt lat="39.990157" lon="-105.295686"><name><![CDATA[004]]></name><sym>Waypoint</sym><ele>2136.399</ele></wpt><wpt lat="39.990134" lon="-105.295251"><name><![CDATA[005]]></name><sym>Waypoint</sym><ele>2174.612</ele></wpt><wpt lat="39.990116" lon="-105.295147"><name><![CDATA[006]]></name><sym>Waypoint</sym><ele>2156.106</ele></wpt><wpt lat="39.990099" lon="-105.295207"><name><![CDATA[007]]></name><sym>Waypoint</sym><ele>2155.145</ele></wpt><wpt lat="39.990067" lon="-105.295185"><name><![CDATA[008]]></name><sym>Waypoint</sym><ele>2152.021</ele></wpt><wpt lat="39.995700" lon="-105.292805"><name><![CDATA[AMPTHT]]></name><sym>Waypoint</sym><ele>1854.735</ele></wpt><wpt lat="38.855550" lon="-94.799017"><name><![CDATA[GARMIN]]></name><sym>Waypoint</sym><ele>325.0491</ele></wpt><wpt lat="39.997298" lon="-105.292674"><name><![CDATA[GRG-CA]]></name><sym>Waypoint</sym><ele>1766.535</ele></wpt><wpt lat="50.982883" lon="-1.463900"><name><![CDATA[GRMEUR]]></name><sym>Waypoint</sym><ele>35.93469</ele></wpt><wpt lat="33.330190" lon="-111.946110"><name><![CDATA[GRMPHX]]></name><sym>Waypoint</sym><ele>361.0981</ele></wpt><wpt lat="25.061783" lon="121.640267"><name><![CDATA[GRMTWN]]></name><sym>Waypoint</sym><ele>38.09766</ele></wpt><wpt lat="39.999840" lon="-105.214696"><name><![CDATA[SBDR]]></name><sym>Waypoint</sym><ele>1612.965</ele></wpt><wpt lat="39.989739" lon="-105.295285"><name><![CDATA[TO]]></name><sym>Waypoint</sym><ele>2163.556</ele></wpt><wpt lat="40.035301" lon="-105.254443"><name><![CDATA[VICS]]></name><sym>Waypoint</sym><ele>1535.34</ele></wpt></gpx>
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>
@@ -1,7 +1,7 @@
1
1
  require 'test/unit'
2
2
  require File.dirname(__FILE__) + '/../lib/gpx'
3
3
 
4
- class TestMagellanTrackLog < Test::Unit::TestCase
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
 
@@ -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
@@ -2,7 +2,7 @@ require 'test/unit'
2
2
  require 'yaml'
3
3
  require File.dirname(__FILE__) + '/../lib/gpx'
4
4
 
5
- class TestSegment < Test::Unit::TestCase
5
+ class SegmentTest < Test::Unit::TestCase
6
6
  ONE_SEGMENT = File.join(File.dirname(__FILE__), "gpx_files/one_segment.gpx")
7
7
 
8
8
  def setup
@@ -1,7 +1,7 @@
1
1
  require 'test/unit'
2
2
  require File.dirname(__FILE__) + '/../lib/gpx'
3
3
 
4
- class TestTrackFile < Test::Unit::TestCase
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
 
@@ -1,7 +1,7 @@
1
1
  require 'test/unit'
2
2
  require File.dirname(__FILE__) + '/../lib/gpx'
3
3
 
4
- class TestTrack < Test::Unit::TestCase
4
+ class TrackTest < Test::Unit::TestCase
5
5
  ONE_TRACK = File.join(File.dirname(__FILE__), "gpx_files/one_track.gpx")
6
6
 
7
7
  def setup
@@ -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.2"
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
- test_files: []
61
-
56
+ has_rdoc: true
57
+ homepage: http://gpx.rubyforge.com/
58
+ post_install_message:
62
59
  rdoc_options: []
63
60
 
64
- extra_rdoc_files: []
65
-
66
- executables: []
67
-
68
- extensions: []
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
- dependencies: []
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