Class: TcxRb::Workout
- Inherits:
-
Object
- Object
- TcxRb::Workout
- Defined in:
- lib/tcx_rb/workout.rb
Instance Attribute Summary collapse
-
#activities ⇒ Object
Returns the value of attribute activities.
Instance Method Summary collapse
- #+(other) ⇒ Object
- #-(other) ⇒ Object
- #avg_altitude ⇒ Object
- #avg_heart_rate ⇒ Object
- #avg_pace ⇒ Object
- #calories ⇒ Object
- #distance ⇒ Object
-
#initialize(activities = []) ⇒ Workout
constructor
A new instance of Workout.
- #max_altitude ⇒ Object
- #max_heart_rate ⇒ Object
- #max_pace ⇒ Object
- #min_altitude ⇒ Object
- #min_heart_rate ⇒ Object
- #min_pace ⇒ Object
- #time ⇒ Object
- #total_tps ⇒ Object
Constructor Details
#initialize(activities = []) ⇒ Workout
Returns a new instance of Workout.
5 6 7 |
# File 'lib/tcx_rb/workout.rb', line 5 def initialize(activities = []) @activities = activities end |
Instance Attribute Details
#activities ⇒ Object
Returns the value of attribute activities.
8 9 10 |
# File 'lib/tcx_rb/workout.rb', line 8 def activities @activities end |
Instance Method Details
#+(other) ⇒ Object
10 11 12 |
# File 'lib/tcx_rb/workout.rb', line 10 def +(other) Workout.new(@activities + other.activities) end |
#-(other) ⇒ Object
14 15 16 |
# File 'lib/tcx_rb/workout.rb', line 14 def -(other) Workout.new(@activities - other.activities) end |
#avg_altitude ⇒ Object
39 40 41 42 |
# File 'lib/tcx_rb/workout.rb', line 39 def avg_altitude total = total_tps.to_f @activities.sum { |act| (act.total_tps / total) * act.avg_altitude } end |
#avg_heart_rate ⇒ Object
26 27 28 29 |
# File 'lib/tcx_rb/workout.rb', line 26 def avg_heart_rate total = total_tps.to_f @activities.sum { |act| (act.total_tps / total) * act.avg_heart_rate } end |
#avg_pace ⇒ Object
52 53 54 |
# File 'lib/tcx_rb/workout.rb', line 52 def avg_pace distance / time end |
#calories ⇒ Object
68 69 70 |
# File 'lib/tcx_rb/workout.rb', line 68 def calories @activities.sum(&:calories) end |
#distance ⇒ Object
64 65 66 |
# File 'lib/tcx_rb/workout.rb', line 64 def distance @activities.sum(&:distance) end |
#max_altitude ⇒ Object
31 32 33 |
# File 'lib/tcx_rb/workout.rb', line 31 def max_altitude @activities.map(&:max_altitude).max end |
#max_heart_rate ⇒ Object
18 19 20 |
# File 'lib/tcx_rb/workout.rb', line 18 def max_heart_rate @activities.map(&:max_heart_rate).max end |
#max_pace ⇒ Object
44 45 46 |
# File 'lib/tcx_rb/workout.rb', line 44 def max_pace @activities.map(&:max_pace).max end |
#min_altitude ⇒ Object
35 36 37 |
# File 'lib/tcx_rb/workout.rb', line 35 def min_altitude @activities.map(&:min_altitude).min end |
#min_heart_rate ⇒ Object
22 23 24 |
# File 'lib/tcx_rb/workout.rb', line 22 def min_heart_rate @activities.map(&:min_heart_rate).min end |
#min_pace ⇒ Object
48 49 50 |
# File 'lib/tcx_rb/workout.rb', line 48 def min_pace @activities.map(&:min_pace).min end |
#time ⇒ Object
60 61 62 |
# File 'lib/tcx_rb/workout.rb', line 60 def time @activities.sum(&:time) end |
#total_tps ⇒ Object
56 57 58 |
# File 'lib/tcx_rb/workout.rb', line 56 def total_tps @activities.sum(&:total_tps) end |