clipr 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.
@@ -0,0 +1,91 @@
1
+ require 'spec_helper'
2
+
3
+ describe Clipr::TCXFile do
4
+ before(:all) do
5
+ @file = Clipr::TCXFile.new(content_file('sample_activity.tcx'))
6
+ end
7
+
8
+ subject(:file) { @file }
9
+
10
+ it { should have(1).laps }
11
+ it { should have(3370).trackpoints }
12
+
13
+ its(:reported_avg_speed) { should eql(4.431000232696533) }
14
+ its(:real_avg_speed) { should eql(5.665456157569008) }
15
+
16
+ its(:reported_total_distance) { should eql(42981.54) }
17
+ its(:real_total_distance) { should eql(42981.53125) }
18
+ its(:reported_total_seconds) { should eql(9700.176) }
19
+ its(:real_total_seconds) { should eql(9704.0) }
20
+
21
+ describe "A clipped file" do
22
+ before(:all) { @file.clip_after(time: '2013-04-13T11:32:11.000Z') }
23
+
24
+ it 'deletes all following trackpoints' do
25
+ file.should have(3147).trackpoints
26
+ end
27
+
28
+ it 'calculates the average speed' do
29
+ file.real_avg_speed.should == 6.051869161249457
30
+ end
31
+
32
+ it 'sets the reported speed' do
33
+ file.reported_avg_speed.should == 6.051869161249457
34
+ end
35
+
36
+ it 'calculates the total distance' do
37
+ file.real_total_distance.should == 42847.98046875
38
+ end
39
+
40
+ it 'sets the reported total distance' do
41
+ file.reported_total_distance.should == 42847.98046875
42
+ end
43
+
44
+ it 'calculates the maximum speed' do
45
+ file.real_max_speed.should == 14.213000297546387
46
+ end
47
+
48
+ it 'sets the maximum speed' do
49
+ file.reported_max_speed.should == 14.213000297546387
50
+ end
51
+
52
+ it 'calculates the total time' do
53
+ file.real_total_seconds.should == 8091.0
54
+ end
55
+
56
+ it 'sets the total time' do
57
+ file.reported_total_seconds.should == 8091.0
58
+ end
59
+
60
+ describe 'The saved file' do
61
+ before :all do
62
+ saved_name = content_filename('saved.tcx')
63
+ File.delete(saved_name) rescue nil
64
+
65
+ @file.save(saved_name).should be_true
66
+
67
+ @loaded_str = content_file('saved.tcx')
68
+ end
69
+
70
+ context 'as xml' do
71
+ subject(:loaded_xml) { Nokogiri::XML(@loaded_str) }
72
+
73
+ it 'has one activity in the Garmin namespace' do
74
+ loaded_xml.xpath('//xmlns:Activity').should have(1).node
75
+ end
76
+
77
+ it 'has the correct speed' do
78
+ loaded_xml.xpath('//xmlns:Lap/xmlns:TotalTimeSeconds').text.to_f.should == 8091.0
79
+ end
80
+ end
81
+ end
82
+ end
83
+
84
+ describe 'A file with trackpoints that have no distance' do
85
+ before(:all) do
86
+ @file = Clipr::TCXFile.new(content_file('tony.tcx'))
87
+ end
88
+
89
+ its(:real_total_distance) { should eql(53917.5) }
90
+ end
91
+ end
@@ -0,0 +1,9 @@
1
+ require 'clipr'
2
+
3
+ def content_filename(filename)
4
+ File.join(File.dirname(__FILE__), 'fixtures', filename)
5
+ end
6
+
7
+ def content_file(filename)
8
+ File.read(content_filename(filename))
9
+ end
metadata ADDED
@@ -0,0 +1,63 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: clipr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Russell Garner
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-08-26 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Trims single-lap Garmin TCX files to remove empty space at the end of
14
+ the file
15
+ email:
16
+ - rgarner@zephyros-systems.co.uk
17
+ executables:
18
+ - clipr
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - .gitignore
23
+ - Gemfile
24
+ - README.md
25
+ - Rakefile
26
+ - bin/clipr
27
+ - clipr.gemspec
28
+ - lib/clipr.rb
29
+ - lib/clipr/tcx_file.rb
30
+ - lib/clipr/version.rb
31
+ - lib/trollop.rb
32
+ - spec/fixtures/sample_activity.tcx
33
+ - spec/fixtures/tony.tcx
34
+ - spec/lib/tcx_file_spec.rb
35
+ - spec/spec_helper.rb
36
+ homepage: http://github.com/rgarner/clipr
37
+ licenses: []
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 2.0.3
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: Trim Garmin TCX files
59
+ test_files:
60
+ - spec/fixtures/sample_activity.tcx
61
+ - spec/fixtures/tony.tcx
62
+ - spec/lib/tcx_file_spec.rb
63
+ - spec/spec_helper.rb