tcxread 0.1.1 → 0.1.2

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tcxread.rb +26 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 209745c7c980f590adf7944373f33951373b2c000d3a6a1bcfaed33b63cd59ad
4
- data.tar.gz: 8abbe15da4a5a3ef688d531fa2d00c32dbfc19066a3c1baabe9de825202d6041
3
+ metadata.gz: e42a89981c1614dec069270cb1315ee64d0c6a172de5c44a5370b5f5c8bd584f
4
+ data.tar.gz: dcee18bb770a1aa020d5ad8f67370f775a6f8d25139c39eb8576e76c463c1efd
5
5
  SHA512:
6
- metadata.gz: 9c135f57bc1f24d640afdb59550301e491595652acafa18884d1df0b9f67547780aaffefd8f42cefec74ebb610aeeb8199b70697deff2f596fce1f4e601c3b92
7
- data.tar.gz: de5960e78c0ba9a569778a17a066410fed531a07d359cbe1a7c5e85eea9edae8f3826ef721b410ce0223fd1f9cd32e1a327871f92bbe5c20b7d48e57d08881ab
6
+ metadata.gz: 72c0b8ba80f7cd524c91417123353e6d9523551050c513d55447ae1c6d73ff8add6af60cc6ec319d26af8aa237e7bcb40771f587653ffe92766f57be7d538194
7
+ data.tar.gz: 42a2ea64072c68e786e002a5dd0fa32c4547ac0503a4eb207537c3d9442148ca958fe9038b44b826033fa94ca4ddf80feaff92f8904745bfdad7aaba96c591ae
data/lib/tcxread.rb CHANGED
@@ -5,7 +5,7 @@ require "nokogiri"
5
5
  class TCXRead
6
6
  attr_reader :total_distance_meters, :total_time_seconds, :total_calories,
7
7
  :total_ascent, :total_descent, :max_altitude, :average_heart_rate,
8
- :max_watts, :average_watts
8
+ :max_watts, :average_watts, :average_cadence
9
9
 
10
10
  def initialize(file_path)
11
11
  @file_path = file_path
@@ -22,6 +22,7 @@ class TCXRead
22
22
  # use NA if no watts exist in the TCX file
23
23
  @max_watts = 'NA'
24
24
  @average_watts = 'NA'
25
+ @average_cadence = 0
25
26
 
26
27
  parse
27
28
  end
@@ -38,6 +39,7 @@ class TCXRead
38
39
  @total_ascent, @total_descent, @max_altitude = calculate_ascent_descent_and_max_altitude_from_activities(activities)
39
40
  @average_heart_rate = calculate_average_heart_rate_from_activities(activities)
40
41
  @max_watts, @average_watts = calculate_watts_from_activities(activities)
42
+ @average_cadence = calculate_average_cadence_from_activities(activities)
41
43
  end
42
44
 
43
45
  { activities: activities }
@@ -168,7 +170,6 @@ class TCXRead
168
170
  [total_ascent, total_descent, max_altitude]
169
171
  end
170
172
 
171
-
172
173
  # Calculates the total ascent, total descent, and maximum altitude from the activities.
173
174
  #
174
175
  # @param activities [Array<Hash>] an array of activity hashes.
@@ -263,4 +264,27 @@ class TCXRead
263
264
 
264
265
  [max_watts, average_watts]
265
266
  end
267
+
268
+ # Calculates the average cadence from the activities.
269
+ #
270
+ # @param activities [Array<Hash>] an array of activity hashes.
271
+ # @return [Float] the average cadence.
272
+ def calculate_average_cadence_from_activities(activities)
273
+ total_cadence = 0
274
+ cadence_count = 0
275
+
276
+ activities.each do |activity|
277
+ activity[:laps].each do |lap|
278
+ lap[:tracks].flatten.each do |trackpoint|
279
+ cadence = trackpoint[:cadence]
280
+ if cadence > 0
281
+ total_cadence += cadence
282
+ cadence_count += 1
283
+ end
284
+ end
285
+ end
286
+ end
287
+
288
+ cadence_count > 0 ? total_cadence.to_f / cadence_count : 0.0
289
+ end
266
290
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tcxread
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - firefly-cpp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-27 00:00:00.000000000 Z
11
+ date: 2024-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri