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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -16
  3. data/lib/tcxread.rb +17 -6
  4. metadata +3 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 467aa1170c1d1e4187ad0bf62cdf274e3323427e1a17b373761d9e15344f3246
4
- data.tar.gz: 3bb6690e5169d24ea3a18cbcea16af923a3d203a1f230364b5db2e68363ced11
3
+ metadata.gz: 3d133eea1f6023a5ede73c5598671052bb312ea47d621d9dfe49bb6faa4cb4a6
4
+ data.tar.gz: 7650d1a88ec174b8e963ddc3a21319fca4157d016ccdf9d08b81c11873de02ea
5
5
  SHA512:
6
- metadata.gz: 8fa40c28c9ead5bbdbdb3d3c7a79958f7145f6b53398771af1776be3e6d44c25d2e0e9ec8165026d4c54789dccad0550fd69e882e1471dec322feb79a3a3c059
7
- data.tar.gz: ff9edd51b84495ce42b3db1ea53a807f23df2c97b264524f5f274a9b2b9a815efcedd6d0e7c2bc540268a4655a85c3cdd183ce1aa1f732edc22476bcbf53e157
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.new('23.tcx')
42
-
43
- puts "Distance meters: #{data.total_distance_meters}, " \
44
- "Time seconds: #{data.total_time_seconds}, " \
45
- "Calories: #{data.total_calories}, " \
46
- "Total ascent: #{data.total_ascent}, " \
47
- "Total descent: #{data.total_descent}, " \
48
- "Max altitude: #{data.max_altitude}, " \
49
- "Average heart rate: #{data.average_heart_rate}, " \
50
- "Average watts: #{data.average_watts}, " \
51
- "Max watts: #{data.max_watts}, " \
52
- "Average speed: #{data.average_speed_all}, " \
53
- "Average speed (moving): #{data.average_speed_moving}, " \
54
- "Average cadence (moving): #{data.average_cadence_biking}, " \
55
- "Average cadence: #{data.average_cadence_all}"
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 file_path [String] The file path of the TCX file to process.
47
- def initialize(file_path)
48
- @file_path = file_path
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.0
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: 2024-12-12 00:00:00.000000000 Z
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.5.22
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: []