calcpace 1.9.9 → 1.9.10
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/CHANGELOG.md +5 -0
- data/lib/calcpace/track_calculator.rb +8 -9
- data/lib/calcpace/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0e8d5ca7f00eaacd53af3a268a695a80523a497eedf9caebbd8c5459ea261808
|
|
4
|
+
data.tar.gz: 974e29530df057bcc3317c66d78343af96c30d246c076c51115a0bcfe93c0736
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 30f1a094b09bb131ad43923f6cabda560c4bb64b811c6b621d6b87e92f9f53101f9ff94f5a5c62926c003b743b53b3a2967e387c06effef1fd463de2481a0f8d
|
|
7
|
+
data.tar.gz: 38eb834c5acb4d18dc9729159733dc0ff72ec56d5e7391867c1182f1c2abe62dd690348afdee0686a5aa25f7570c3fe1e176d1cdd99671ad03e9c44eaa57cf7e
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.9.10] - 2026-07-09
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Refactor `TrackCalculator`: extract a single `dig_key` helper for symbol/string key access, removing duplicated fallback logic across coordinate, elevation, and time readers (no behavior change)
|
|
14
|
+
|
|
10
15
|
## [1.9.9] - 2026-06-17
|
|
11
16
|
|
|
12
17
|
### Changed
|
|
@@ -74,8 +74,8 @@ module TrackCalculator
|
|
|
74
74
|
return 0.0 if points.nil? || points.size < 2
|
|
75
75
|
|
|
76
76
|
total = points.each_cons(2).sum do |a, b|
|
|
77
|
-
haversine_distance(
|
|
78
|
-
|
|
77
|
+
haversine_distance(dig_key(a, :lat), dig_key(a, :lon),
|
|
78
|
+
dig_key(b, :lat), dig_key(b, :lon))
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
total.round(2)
|
|
@@ -180,25 +180,24 @@ module TrackCalculator
|
|
|
180
180
|
end
|
|
181
181
|
end
|
|
182
182
|
|
|
183
|
-
def
|
|
183
|
+
def dig_key(point, key)
|
|
184
184
|
point[key] || point[key.to_s]
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
def fetch_ele(point)
|
|
188
|
-
|
|
189
|
-
val&.to_f
|
|
188
|
+
dig_key(point, :ele)&.to_f
|
|
190
189
|
end
|
|
191
190
|
|
|
192
191
|
def validate_points_have_time(points)
|
|
193
192
|
points.each_with_index do |pt, i|
|
|
194
|
-
next if pt
|
|
193
|
+
next if dig_key(pt, :time)
|
|
195
194
|
|
|
196
195
|
raise ArgumentError, "Point at index #{i} is missing :time key required for splits"
|
|
197
196
|
end
|
|
198
197
|
end
|
|
199
198
|
|
|
200
199
|
def point_time(point)
|
|
201
|
-
t = point
|
|
200
|
+
t = dig_key(point, :time)
|
|
202
201
|
t.respond_to?(:to_f) ? t.to_f : t
|
|
203
202
|
end
|
|
204
203
|
|
|
@@ -228,8 +227,8 @@ module TrackCalculator
|
|
|
228
227
|
end
|
|
229
228
|
|
|
230
229
|
def process_segment(point_a, point_b, split_km, state)
|
|
231
|
-
segment_km = haversine_distance(
|
|
232
|
-
|
|
230
|
+
segment_km = haversine_distance(dig_key(point_a, :lat), dig_key(point_a, :lon),
|
|
231
|
+
dig_key(point_b, :lat), dig_key(point_b, :lon))
|
|
233
232
|
state[:accumulated_km] += segment_km
|
|
234
233
|
|
|
235
234
|
while state[:accumulated_km] >= split_km * state[:split_number]
|
data/lib/calcpace/version.rb
CHANGED