gpx_track_generator 0.1.1 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 309023d011ba9d800f4dcba6b64458504364733e
4
- data.tar.gz: 19662c2f92a3d3808c75db32de8c3506923d0de7
3
+ metadata.gz: f44774183c934f97efb98d4910bb2385086c1ecc
4
+ data.tar.gz: b940a57bc8c2ab82b9fdd651f4835febdad04e1f
5
5
  SHA512:
6
- metadata.gz: aa441a132683f9182745f2f294d3e261bb6df16617343db75617dc89a4a1c4415fa9705c5e5b06dee7c1ddf38b9f1d977da8f9577141504a4ca93342916c283b
7
- data.tar.gz: 0ba36bfc3b33f2f3aae5b4c3432a3e23afa7d523c0d81aac6e769e53183d3d80f37dd78a2fea1ccf274a89f16e00e423059cdfbc625afdbdb151e5537f39169b
6
+ metadata.gz: 034cb1be0f7e552973be8c614da2c40d936a461391ca5d3a03165b84a166f914ddd41515ab5f255b2d5b7f24d2491a068b7466e55a7cc78d6bfde4d55c15bad3
7
+ data.tar.gz: c1eba84912141b2485453c348eff409bbdbf79a6a8ee0fa8b38cc47959c012392df70dedec54eeb6d9dfbaf4a00f6a8d5b32d67b85b54d42b457722bbb3b48d9
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gpx_track_generator (0.1.1)
4
+ gpx_track_generator (0.2.0)
5
5
  activesupport
6
6
  nokogiri
7
7
  nokogiri-pretty
data/README.md CHANGED
@@ -25,6 +25,8 @@ Or install it yourself as:
25
25
 
26
26
  Create your track file from ruby code. This can be helpful in your `Rakefile`.
27
27
 
28
+ *Create track file*
29
+
28
30
  ```ruby
29
31
  input_files = %w(track1.gpx route2.gpx)
30
32
  track_name = 'Track ABC'
@@ -37,6 +39,21 @@ GpxTrackGenerator::Api.generate(
37
39
  )
38
40
  ```
39
41
 
42
+ *Reverse track*
43
+
44
+ ```ruby
45
+ input_files = %w(track1.gpx route2.gpx)
46
+ track_name = 'Track ABC'
47
+ output_file = 'my_track.gpx'
48
+
49
+ GpxTrackGenerator::Api.generate(
50
+ input_files: input_files,
51
+ track_name: track_name,
52
+ output_file: output_file,
53
+ reverse: true
54
+ )
55
+ ```
56
+
40
57
  ### CLI
41
58
 
42
59
  *Create track file*
@@ -51,7 +68,11 @@ gpx_track *.gpx
51
68
  gpx_track --name "Track Name" *.gpx
52
69
  ```
53
70
 
54
- TODO: Write usage instructions here
71
+ *Reverse track*
72
+
73
+ ```
74
+ gpx_track --name "Track Name" --reverse *.gpx
75
+ ```
55
76
 
56
77
  ## Contributing
57
78
 
@@ -38,3 +38,35 @@ Feature: Create GPX Track File
38
38
  """
39
39
  <name>Track #1</name>
40
40
  """
41
+
42
+ Scenario: Normal order track
43
+ Given a gpx file named "track1.gpx"
44
+ And a gpx file named "track2.gpx"
45
+ When I successfully run `gpx_track g track1.gpx track2.gpx`
46
+ Then the gpx file "track.gpx" should contain:
47
+ """
48
+ <trkpt lat="56.688634024660372" lon="-6.5744374090151107">
49
+ <name>WP 1</name>
50
+ <ele>16.232316396783801</ele>
51
+ </trkpt>
52
+ <trkpt lat="57.688634024660372" lon="-6.5744374090151107">
53
+ <name>WP 2</name>
54
+ <ele>16.232316396783801</ele>
55
+ </trkpt>
56
+ """
57
+
58
+ Scenario: Reverse track
59
+ Given a gpx file named "track1.gpx"
60
+ And a gpx file named "track2.gpx"
61
+ When I successfully run `gpx_track g --reverse track1.gpx track2.gpx`
62
+ Then the gpx file "track.gpx" should contain:
63
+ """
64
+ <trkpt lat="57.688634024660372" lon="-6.5744374090151107">
65
+ <name>WP 2</name>
66
+ <ele>16.232316396783801</ele>
67
+ </trkpt>
68
+ <trkpt lat="56.688634024660372" lon="-6.5744374090151107">
69
+ <name>WP 1</name>
70
+ <ele>16.232316396783801</ele>
71
+ </trkpt>
72
+ """
@@ -2,9 +2,9 @@
2
2
  module GpxTrackGenerator
3
3
  # Main api
4
4
  module Api
5
- def self.generate(input_files:, track_name:, output_file:)
5
+ def self.generate(input_files:, track_name:, output_file:, reverse: false)
6
6
  files = input_files.map { |f| GpxFile.new(File.expand_path(f)) }
7
- track = Track.new(files, name: track_name)
7
+ track = Track.new(files, name: track_name, reverse: reverse)
8
8
 
9
9
  File.write(output_file, track.to_s)
10
10
  end
@@ -4,11 +4,12 @@ module GpxTrackGenerator
4
4
  class Runner < Thor
5
5
  option :file, default: 'track.gpx', desc: 'GPX track file name'
6
6
  option :name, default: 'Track #1', required: true, desc: 'Name for track'
7
+ option :reverse, type: :boolean, desc: 'Reverse track'
7
8
  argument :input_files, type: :array, desc: 'GPX track or route files'
8
9
 
9
10
  desc 'generate', 'Generate gpx track'
10
11
  def generate
11
- Api.generate(input_files: input_files, track_name: options[:name], output_file: options[:file])
12
+ Api.generate(input_files: input_files, track_name: options[:name], output_file: options[:file], reverse: options[:reverse])
12
13
  end
13
14
 
14
15
  default_command :generate
@@ -4,13 +4,14 @@ module GpxTrackGenerator
4
4
  class Track
5
5
  private
6
6
 
7
- attr_reader :files, :name
7
+ attr_reader :files, :name, :reverse
8
8
 
9
9
  public
10
10
 
11
- def initialize(files, name:)
11
+ def initialize(files, name:, reverse:)
12
12
  @files = files
13
13
  @name = name
14
+ @reverse = reverse
14
15
  end
15
16
 
16
17
  def to_s
@@ -37,7 +38,7 @@ module GpxTrackGenerator
37
38
  files.each_with_object(document.css('trk').first) do |e, a|
38
39
  a << "<!-- #{e.file_name} -->"
39
40
  a << document.create_element('trkseg')
40
- a.css('trkseg').last << e.nodes
41
+ a.css('trkseg').last << (reverse ? e.nodes.reverse : e.nodes)
41
42
  end
42
43
 
43
44
  document.human
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
  # GpxTrackGenerator
3
3
  module GpxTrackGenerator
4
- VERSION = '0.1.1'
4
+ VERSION = '0.2.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gpx_track_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Meyer