tcxread 0.2.0 → 0.2.1
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 +4 -4
- data/README.md +19 -16
- data/lib/tcxread.rb +17 -6
- metadata +3 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d133eea1f6023a5ede73c5598671052bb312ea47d621d9dfe49bb6faa4cb4a6
|
4
|
+
data.tar.gz: 7650d1a88ec174b8e963ddc3a21319fca4157d016ccdf9d08b81c11873de02ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ade42be5169a40e65f05eedb6546727ffb3bf9ba00a4d6fe412ed0a6546dc675b643ac818aec909f238661771acbe68973fb557f9ef26143fe4a4c2506a51ecb
|
7
|
+
data.tar.gz: 7bccd7b16ddd291a1963b03b458fbcb2fad41b162810a0187f309c35cb37af61d8f669d5333d9dab9f094ec16dabfb15548cf271e30fa515045a07428bd8669b
|
data/README.md
CHANGED
@@ -38,24 +38,27 @@ $ gem install tcxread
|
|
38
38
|
```ruby
|
39
39
|
require 'tcxread'
|
40
40
|
|
41
|
-
data = TCXRead.
|
42
|
-
|
43
|
-
puts
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
41
|
+
data = TCXRead.load_file('23.tcx')
|
42
|
+
|
43
|
+
puts [
|
44
|
+
"Distance meters: #{data.total_distance_meters}",
|
45
|
+
"Time seconds: #{data.total_time_seconds}",
|
46
|
+
"Calories: #{data.total_calories}",
|
47
|
+
"Total ascent: #{data.total_ascent}",
|
48
|
+
"Total descent: #{data.total_descent}",
|
49
|
+
"Max altitude: #{data.max_altitude}",
|
50
|
+
"Average heart rate: #{data.average_heart_rate}",
|
51
|
+
"Average watts: #{data.average_watts}",
|
52
|
+
"Max watts: #{data.max_watts}",
|
53
|
+
"Average speed: #{data.average_speed_all}",
|
54
|
+
"Average speed (moving): #{data.average_speed_moving}",
|
55
|
+
"Average cadence (moving): #{data.average_cadence_biking}",
|
56
|
+
"Average cadence: #{data.average_cadence_all}"
|
57
|
+
].join("\n")
|
57
58
|
```
|
58
59
|
|
60
|
+
Use `TCXRead.parse(data)` to parse raw TCX data.
|
61
|
+
|
59
62
|
## 💾 Datasets
|
60
63
|
|
61
64
|
Datasets available and used in the examples on the following links: [DATASET1](http://iztok-jr-fister.eu/static/publications/Sport5.zip), [DATASET2](http://iztok-jr-fister.eu/static/css/datasets/Sport.zip), [DATASET3](https://github.com/firefly-cpp/tcx-test-files).
|
data/lib/tcxread.rb
CHANGED
@@ -43,10 +43,9 @@ class TCXRead
|
|
43
43
|
:average_speed_all, :average_speed_moving
|
44
44
|
|
45
45
|
# Initializes the TCXRead object and parses the TCX file.
|
46
|
-
# @param
|
47
|
-
def initialize(
|
48
|
-
@
|
49
|
-
@doc = Nokogiri::XML(File.open(file_path))
|
46
|
+
# @param file_path_or_xml [String] The file path of the TCX file to process or a Nokogiri::XML document.
|
47
|
+
def initialize(file_path_or_xml)
|
48
|
+
@doc = file_path_or_xml.is_a?(Nokogiri::XML::Document) ? file_path_or_xml : Nokogiri::XML(File.open(file_path_or_xml))
|
50
49
|
@doc.root.add_namespace_definition('ns3', 'http://www.garmin.com/xmlschemas/ActivityExtension/v2')
|
51
50
|
|
52
51
|
@total_distance_meters = 0
|
@@ -66,6 +65,20 @@ class TCXRead
|
|
66
65
|
parse
|
67
66
|
end
|
68
67
|
|
68
|
+
# Returns a TCXRead object from a File or file path.
|
69
|
+
# @param file_or_path [String, File] The file path or a Fule of the TCX file to process.
|
70
|
+
def self.load_file(file_or_path)
|
71
|
+
TCXRead.new(Nokogiri::XML(file_or_path.is_a?(File) ? file_or_path : File.open(file_or_path)))
|
72
|
+
end
|
73
|
+
|
74
|
+
# Returns a TCXRead object from raw TCX data.
|
75
|
+
# @param data [String] TCX data to load.
|
76
|
+
def self.parse(data)
|
77
|
+
TCXRead.new(Nokogiri::XML(data))
|
78
|
+
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
69
82
|
# Parses the TCX file and computes metrics for all activities.
|
70
83
|
def parse
|
71
84
|
activities = parse_activities
|
@@ -88,8 +101,6 @@ class TCXRead
|
|
88
101
|
@average_speed_moving = speed_results[:average_speed_moving]
|
89
102
|
end
|
90
103
|
|
91
|
-
private
|
92
|
-
|
93
104
|
# Parses activities from the TCX file.
|
94
105
|
# @return [Array<Hash>] An array of parsed activity data.
|
95
106
|
def parse_activities
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tcxread
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- firefly-cpp
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: nokogiri
|
@@ -24,7 +23,6 @@ dependencies:
|
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
25
|
version: '1.11'
|
27
|
-
description:
|
28
26
|
email:
|
29
27
|
- iztok@iztok-jr-fister.eu
|
30
28
|
executables: []
|
@@ -41,7 +39,6 @@ metadata:
|
|
41
39
|
homepage_uri: https://github.com/firefly-cpp/tcxread
|
42
40
|
source_code_uri: https://github.com/firefly-cpp/tcxread
|
43
41
|
changelog_uri: https://github.com/firefly-cpp/tcxread
|
44
|
-
post_install_message:
|
45
42
|
rdoc_options: []
|
46
43
|
require_paths:
|
47
44
|
- lib
|
@@ -56,8 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
53
|
- !ruby/object:Gem::Version
|
57
54
|
version: '0'
|
58
55
|
requirements: []
|
59
|
-
rubygems_version: 3.
|
60
|
-
signing_key:
|
56
|
+
rubygems_version: 3.6.9
|
61
57
|
specification_version: 4
|
62
58
|
summary: tcx reader/parser in Ruby
|
63
59
|
test_files: []
|