fit4ruby 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fit4ruby/Activity.rb +24 -3
- data/lib/fit4ruby/Converters.rb +3 -1
- data/lib/fit4ruby/FitFile.rb +1 -0
- data/lib/fit4ruby/GlobalFitDictionaries.rb +21 -0
- data/lib/fit4ruby/GlobalFitMessages.rb +48 -0
- data/lib/fit4ruby/HRV.rb +33 -0
- data/lib/fit4ruby/Log.rb +14 -3
- data/lib/fit4ruby/version.rb +1 -1
- metadata +14 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03a178c07a618005acb996433ce4c8d1dd4f1cce
|
4
|
+
data.tar.gz: 84ee7b840af9cfac5411bd4480737cdf8e4fcaff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd71d3ffafc982031ae56a62ab8c76780a329346108717d2f54b3a2f7e82c866da5e424167530a4b5452bc48916ab24ec037ab43c4cdd4e6ce30259e3280bada
|
7
|
+
data.tar.gz: 5e9cab1af4d8a3bd048b73ab44a60cbc475d228e50c20746ca33cc027d0aa6c89d39e928d72ac111e438afc62c3ef0bf1dfd52bdccd46b8f3e18a89f3e2f7361
|
data/lib/fit4ruby/Activity.rb
CHANGED
@@ -19,6 +19,7 @@ require 'fit4ruby/UserProfile'
|
|
19
19
|
require 'fit4ruby/Session'
|
20
20
|
require 'fit4ruby/Lap'
|
21
21
|
require 'fit4ruby/Record'
|
22
|
+
require 'fit4ruby/HRV'
|
22
23
|
require 'fit4ruby/Event'
|
23
24
|
require 'fit4ruby/PersonalRecords'
|
24
25
|
|
@@ -30,7 +31,7 @@ module Fit4Ruby
|
|
30
31
|
class Activity < FitDataRecord
|
31
32
|
|
32
33
|
attr_accessor :file_id, :file_creator, :device_infos, :data_sources,
|
33
|
-
:user_profiles, :sessions, :laps, :records,
|
34
|
+
:user_profiles, :sessions, :laps, :records, :hrv,
|
34
35
|
:events, :personal_records
|
35
36
|
|
36
37
|
# Create a new Activity object.
|
@@ -50,6 +51,7 @@ module Fit4Ruby
|
|
50
51
|
@sessions = []
|
51
52
|
@laps = []
|
52
53
|
@records = []
|
54
|
+
@hrv = []
|
53
55
|
@personal_records = []
|
54
56
|
|
55
57
|
@cur_session_laps = []
|
@@ -111,24 +113,31 @@ module Fit4Ruby
|
|
111
113
|
# the total distance purely on the GPS coordinates found in the records.
|
112
114
|
d = 0.0
|
113
115
|
last_lat = last_long = nil
|
116
|
+
last_timestamp = nil
|
114
117
|
|
115
118
|
# Iterate over all the records and accumlate the distances between the
|
116
119
|
# neiboring coordinates.
|
117
120
|
@records.each do |r|
|
118
121
|
if (lat = r.position_lat) && (long = r.position_long)
|
119
122
|
if last_lat && last_long
|
120
|
-
|
121
|
-
|
123
|
+
distance = Fit4Ruby::GeoMath.distance(last_lat, last_long,
|
124
|
+
lat, long)
|
125
|
+
d += distance
|
126
|
+
end
|
127
|
+
if last_timestamp
|
128
|
+
speed = distance / (r.timestamp - last_timestamp)
|
122
129
|
end
|
123
130
|
if timer_stops[0] == r.timestamp
|
124
131
|
# If a stop event was found for this record timestamp we clear the
|
125
132
|
# last_* values so that the distance covered while being stopped
|
126
133
|
# is not added to the total.
|
127
134
|
last_lat = last_long = nil
|
135
|
+
last_timestamp = nil
|
128
136
|
timer_stops.shift
|
129
137
|
else
|
130
138
|
last_lat = lat
|
131
139
|
last_long = long
|
140
|
+
last_timestamp = r.timestamp
|
132
141
|
end
|
133
142
|
end
|
134
143
|
end
|
@@ -163,6 +172,16 @@ module Fit4Ruby
|
|
163
172
|
nil
|
164
173
|
end
|
165
174
|
|
175
|
+
# Returns the remaining recovery time at the start of the activity.
|
176
|
+
# @return remaining recovery time in seconds.
|
177
|
+
def recovery_info
|
178
|
+
@events.each do |e|
|
179
|
+
return e.recovery_info if e.event == 'recovery_info'
|
180
|
+
end
|
181
|
+
|
182
|
+
nil
|
183
|
+
end
|
184
|
+
|
166
185
|
# Returns the predicted recovery time needed after this activity.
|
167
186
|
# @return recovery time in seconds.
|
168
187
|
def recovery_time
|
@@ -350,6 +369,8 @@ module Fit4Ruby
|
|
350
369
|
when 'record'
|
351
370
|
@cur_lap_records << (record = Record.new(field_values))
|
352
371
|
@records << record
|
372
|
+
when 'hrv'
|
373
|
+
@hrv << (record = HRV.new(field_values))
|
353
374
|
when 'personal_records'
|
354
375
|
@personal_records << (record = PersonalRecords.new(field_values))
|
355
376
|
else
|
data/lib/fit4ruby/Converters.rb
CHANGED
@@ -39,7 +39,9 @@ module Fit4Ruby
|
|
39
39
|
|
40
40
|
def speedToPace(speed, distance = 1000.0)
|
41
41
|
if speed && speed > 0.01
|
42
|
-
|
42
|
+
# We only show 2 fractional digits, so make sure we round accordingly
|
43
|
+
# before we crack it up.
|
44
|
+
pace = (distance.to_f / (speed * 60.0)).round(2)
|
43
45
|
int, dec = pace.divmod 1
|
44
46
|
"#{int}:#{'%02d' % (dec * 60)}"
|
45
47
|
else
|
data/lib/fit4ruby/FitFile.rb
CHANGED
@@ -66,6 +66,13 @@ module Fit4Ruby
|
|
66
66
|
entry 4, 'low'
|
67
67
|
entry 5, 'critical'
|
68
68
|
|
69
|
+
dict 'comm_timeout_type'
|
70
|
+
entry 0, 'wildcard_paring_timeout'
|
71
|
+
entry 1, 'pairing_timeout'
|
72
|
+
entry 2, 'connection_lost'
|
73
|
+
entry 3, 'connection_timeout'
|
74
|
+
|
75
|
+
|
69
76
|
dict 'device_type'
|
70
77
|
entry 0, 'gps' # Just a guess
|
71
78
|
entry 3, 'acceleration' # Just a guess
|
@@ -129,6 +136,10 @@ module Fit4Ruby
|
|
129
136
|
entry 39, 'recovery_info' # guess (in minutes, < 24 good, > 24h poor)
|
130
137
|
entry 42, 'front_gear_change'
|
131
138
|
entry 43, 'rear_gear_change'
|
139
|
+
entry 44, 'rider_position_change'
|
140
|
+
entry 45, 'elev_high_alert'
|
141
|
+
entry 46, 'elev_low_alert'
|
142
|
+
entry 47, 'comm_timeout'
|
132
143
|
|
133
144
|
dict 'event_type'
|
134
145
|
entry 0, 'start_time'
|
@@ -159,6 +170,12 @@ module Fit4Ruby
|
|
159
170
|
entry 28, 'monitoring_daily'
|
160
171
|
entry 32, 'monitoring_b'
|
161
172
|
|
173
|
+
dict 'fitness_equipment_state'
|
174
|
+
entry 0, 'ready'
|
175
|
+
entry 1, 'in_use'
|
176
|
+
entry 2, 'paused'
|
177
|
+
entry 3, 'unknown'
|
178
|
+
|
162
179
|
dict 'garmin_product'
|
163
180
|
entry 8, 'hrm_run_single_byte_product_id'
|
164
181
|
entry 1551, 'fenix'
|
@@ -314,6 +331,10 @@ module Fit4Ruby
|
|
314
331
|
entry 0x7000, 'reserved'
|
315
332
|
entry 0x8000, 'selected'
|
316
333
|
|
334
|
+
dict 'rider_position_type'
|
335
|
+
entry 0, 'seated'
|
336
|
+
entry 1, 'standing'
|
337
|
+
|
317
338
|
dict 'session_trigger'
|
318
339
|
entry 0, 'activity_end'
|
319
340
|
entry 1, 'manual'
|
@@ -131,6 +131,9 @@ module Fit4Ruby
|
|
131
131
|
field 121, 'uint16', 'max_power_position', :array => true, :unit => 'watts'
|
132
132
|
field 122, 'uint8', 'avg_cadence_position', :array => true, :unit => 'rpm'
|
133
133
|
field 123, 'uint8', 'max_cadence_position', :array => true, :unit => 'rpm'
|
134
|
+
field 132, 'uint16', 'vertical_ratio', :scale => 100, :unit => '%' # guessed
|
135
|
+
field 133, 'uint16', 'avg_gct_balance', :scale => 100, :unit => '%' # guessed
|
136
|
+
field 134, 'uint16', 'avg_stride_length', :scale => 10000, :unit => 'm' # guessed
|
134
137
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
135
138
|
field 254, 'uint16', 'message_index'
|
136
139
|
|
@@ -216,6 +219,9 @@ module Fit4Ruby
|
|
216
219
|
field 107, 'uint16', 'max_power_position', :array => true, :unit => 'watts'
|
217
220
|
field 108, 'uint8', 'avg_cadence_position', :array => true, :unit => 'rpm'
|
218
221
|
field 109, 'uint8', 'max_cadence_position', :array => true, :unit => 'rpm'
|
222
|
+
field 118, 'uint16', 'vertical_ratio', :scale => 100, :unit => '%' # guessed
|
223
|
+
field 119, 'uint16', 'avg_gct_balance', :scale => 100, :unit => '%' # guessed
|
224
|
+
field 120, 'uint16', 'avg_stride_length', :scale => 10000, :unit => 'm' # guessed
|
219
225
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
220
226
|
field 254, 'uint16', 'message_index'
|
221
227
|
|
@@ -236,6 +242,9 @@ module Fit4Ruby
|
|
236
242
|
field 53, 'uint8', 'fractional_cadence', :scale => 128
|
237
243
|
field 61, 'uint16', 'undefined_value_61'
|
238
244
|
field 66, 'sint16', 'undefined_value_66'
|
245
|
+
field 83, 'uint16', 'vertical_ratio', :scale => 100, :unit => '%' # guessed
|
246
|
+
field 84, 'uint16', 'gct_balance', :scale => 100, :unit => '%' # guessed
|
247
|
+
field 85, 'uint16', 'stride_length', :scale => 10000, :unit => 'm' # guessed
|
239
248
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
240
249
|
|
241
250
|
message 21, 'event'
|
@@ -247,8 +256,22 @@ module Fit4Ruby
|
|
247
256
|
field 'timer', 'enum', 'timer_trigger', :dict => 'timer_trigger'
|
248
257
|
field 'course_point', 'enum', 'message_index', :dict => 'message_index'
|
249
258
|
field 'battery', 'uint16', 'battery_level', :scale => 1000, :unit => 'V'
|
259
|
+
field 'hr_high_alert', 'uint8', 'hr_high_alert', :unit => 'bpm'
|
260
|
+
field 'hr_low_alert', 'uint8', 'hr_low_alert', :unit => 'bpm'
|
261
|
+
field 'speed_high_alert', 'uint16', 'speed_high_alert', :scale => 1000, :unit => 'm/s'
|
262
|
+
field 'speed_low_alert', 'uint16', 'speed_low_alert', :scale => 1000, :unit => 'm/s'
|
263
|
+
field 'cad_high_alert', 'uint16', 'cad_high_alert', :unit => 'bpm'
|
264
|
+
field 'cad_low_alert', 'uint16', 'cad_low_alert', :unit => 'bpm'
|
265
|
+
field 'power_high_alert', 'uint16', 'power_high_alert', :unit => 'watts'
|
266
|
+
field 'power_low_alert', 'uint16', 'power_low_alert', :unit => 'watts'
|
267
|
+
field 'time_duration_alert', 'uint32', 'time_duration_alert', :scale => 100, :unit => 's'
|
268
|
+
field 'calorie_duration_alert', 'uint32', 'calorie_duration_alert', :unit => 'calories'
|
269
|
+
field 'fitness_equipment', 'enum', 'fitness_equipment_state', :dict => 'fitness_equipment_state'
|
270
|
+
field 'rider_position', 'enum', 'rider_position', :dict => 'rider_position_type'
|
271
|
+
field 'comm_timeout', 'uint16', 'comm_timeout', :dict => 'comm_timeout_type'
|
250
272
|
field 'recovery_hr', 'uint32', 'recovery_hr', :unit => 'bpm'
|
251
273
|
field 'recovery_time', 'uint32', 'recovery_time', :unit => 'min'
|
274
|
+
field 'recovery_info', 'uint32', 'recovery_info', :unit => 'min'
|
252
275
|
field 'vo2max', 'uint32', 'vo2max'
|
253
276
|
end
|
254
277
|
field 4, 'uint8', 'event_group'
|
@@ -355,6 +378,10 @@ module Fit4Ruby
|
|
355
378
|
field 24, 'byte', 'current_activity_type_intensity', :type => 'activity_intensity'
|
356
379
|
field 26, 'uint16', 'timestamp_16', :unit => 's'
|
357
380
|
field 29, 'uint16', 'duration_min', :unit => 'min'
|
381
|
+
field 31, 'uint32', 'undocumented_field_31'
|
382
|
+
field 32, 'uint32', 'undocumented_field_32'
|
383
|
+
field 35, 'uint32', 'undocumented_field_35'
|
384
|
+
field 36, 'uint32', 'undocumented_field_36'
|
358
385
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
359
386
|
|
360
387
|
message 72, 'training_file'
|
@@ -383,6 +410,11 @@ module Fit4Ruby
|
|
383
410
|
field 7, 'sint8', 'undocumented_field_7' # seems to be always 1
|
384
411
|
field 8, 'uint16', 'recovery_time', :scale => 60, :unit => 'hours'
|
385
412
|
field 9, 'uint16', 'undocumented_field_9' # maybe activity measurement
|
413
|
+
field 10, 'uint8', 'undocumented_field_10'
|
414
|
+
field 11, 'uint16', 'undocumented_field_11'
|
415
|
+
field 12, 'uint16', 'undocumented_field_12'
|
416
|
+
field 13, 'uint16', 'undocumented_field_13'
|
417
|
+
field 14, 'uint8', 'undocumented_field_14'
|
386
418
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
387
419
|
|
388
420
|
message 101, 'length'
|
@@ -424,6 +456,15 @@ module Fit4Ruby
|
|
424
456
|
field 5, 'enum', 'new_record'
|
425
457
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
426
458
|
|
459
|
+
# Not part of the official ANT SDK doc
|
460
|
+
# It shows up in swimming activities.
|
461
|
+
message 125, 'undocumented_125'
|
462
|
+
field 1, 'uint8', 'undocumented_field_1', :array => true
|
463
|
+
field 2, 'uint16', 'undocumented_field_2', :array => true
|
464
|
+
field 3, 'uint16', 'undocumented_field_3'
|
465
|
+
field 4, 'uint8', 'undocumented_field_4'
|
466
|
+
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
467
|
+
|
427
468
|
# Not part of the official ANT SDK doc
|
428
469
|
# The values in this message seem to be related to the activity history.
|
429
470
|
# If no HRM is used, most of them are 0. Fields 4, 7, 9 and 10 always have
|
@@ -442,6 +483,13 @@ module Fit4Ruby
|
|
442
483
|
field 10, 'uint16', 'undocumented_field_10' # always seems to be 340
|
443
484
|
field 11, 'enum', 'undocumented_field_11'
|
444
485
|
field 12, 'enum', 'undocumented_field_12'
|
486
|
+
field 13, 'uint8', 'undocumented_field_13'
|
487
|
+
field 14, 'uint16', 'undocumented_field_14'
|
488
|
+
field 15, 'uint16', 'undocumented_field_15'
|
489
|
+
field 16, 'uint16', 'undocumented_field_16'
|
490
|
+
field 17, 'sint8', 'undocumented_field_17'
|
491
|
+
field 18, 'uint8', 'undocumented_field_18'
|
492
|
+
field 19, 'uint8', 'undocumented_field_19'
|
445
493
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
446
494
|
|
447
495
|
# Not part of the official ANT SDK doc
|
data/lib/fit4ruby/HRV.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
# encoding: UTF-8
|
3
|
+
#
|
4
|
+
# = RR_Intervals.rb -- Fit4Ruby - FIT file processing library for Ruby
|
5
|
+
#
|
6
|
+
# Copyright (c) 2015 by Chris Schlaeger <cs@taskjuggler.org>
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of version 2 of the GNU General Public License as
|
10
|
+
# published by the Free Software Foundation.
|
11
|
+
#
|
12
|
+
|
13
|
+
require 'fit4ruby/FitDataRecord'
|
14
|
+
|
15
|
+
module Fit4Ruby
|
16
|
+
|
17
|
+
# The Heart Rate Variability or HRV data is contained in message number 78.
|
18
|
+
# It is an array of values that represent the time in seconds since the
|
19
|
+
# previous heart beat (R-R interval).
|
20
|
+
class HRV < FitDataRecord
|
21
|
+
|
22
|
+
def initialize(field_values = {})
|
23
|
+
super('hrv')
|
24
|
+
set_field_values(field_values)
|
25
|
+
end
|
26
|
+
|
27
|
+
def check(index)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
data/lib/fit4ruby/Log.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
#
|
4
4
|
# = Log.rb -- Fit4Ruby - FIT file processing library for Ruby
|
5
5
|
#
|
6
|
-
# Copyright (c)
|
6
|
+
# Copyright (c) 2015 by Chris Schlaeger <cs@taskjuggler.org>
|
7
7
|
#
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
9
9
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -30,6 +30,17 @@ module Fit4Ruby
|
|
30
30
|
|
31
31
|
@@logger = Logger.new(STDOUT)
|
32
32
|
|
33
|
+
# Redirect all log messages to the given IO.
|
34
|
+
# @param io [IO] Output file descriptor
|
35
|
+
def open(io)
|
36
|
+
begin
|
37
|
+
@@logger = Logger.new(io)
|
38
|
+
rescue => e
|
39
|
+
@@logger = Logger.new(STDERR)
|
40
|
+
Log.fatal "Cannot open log file: #{e.message}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
33
44
|
# Pass all calls to unknown methods to the @@logger object.
|
34
45
|
def method_missing(method, *args, &block)
|
35
46
|
@@logger.send(method, *args, &block)
|
@@ -42,8 +53,8 @@ module Fit4Ruby
|
|
42
53
|
|
43
54
|
# Print an error message via the Logger and raise and Fit4Ruby::Error.
|
44
55
|
# code 1.
|
45
|
-
def fatal(msg)
|
46
|
-
@@logger.error(msg)
|
56
|
+
def fatal(msg, &block)
|
57
|
+
@@logger.error(msg, &block)
|
47
58
|
raise Error, msg
|
48
59
|
end
|
49
60
|
|
data/lib/fit4ruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fit4ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Schlaeger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bindata
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: yard
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.8.7
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.8.7
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.9.6
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.9.6
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 1.6.4
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.6.4
|
69
69
|
description: |
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- lib/fit4ruby/GlobalFitDictionaries.rb
|
107
107
|
- lib/fit4ruby/GlobalFitMessage.rb
|
108
108
|
- lib/fit4ruby/GlobalFitMessages.rb
|
109
|
+
- lib/fit4ruby/HRV.rb
|
109
110
|
- lib/fit4ruby/Lap.rb
|
110
111
|
- lib/fit4ruby/Log.rb
|
111
112
|
- lib/fit4ruby/Monitoring.rb
|
@@ -135,17 +136,17 @@ require_paths:
|
|
135
136
|
- lib
|
136
137
|
required_ruby_version: !ruby/object:Gem::Requirement
|
137
138
|
requirements:
|
138
|
-
- -
|
139
|
+
- - ">="
|
139
140
|
- !ruby/object:Gem::Version
|
140
141
|
version: '2.0'
|
141
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
143
|
requirements:
|
143
|
-
- -
|
144
|
+
- - ">="
|
144
145
|
- !ruby/object:Gem::Version
|
145
146
|
version: '0'
|
146
147
|
requirements: []
|
147
148
|
rubyforge_project:
|
148
|
-
rubygems_version: 2.
|
149
|
+
rubygems_version: 2.2.2
|
149
150
|
signing_key:
|
150
151
|
specification_version: 4
|
151
152
|
summary: Library to read GARMIN FIT files.
|