Class: TcxRb::Workout

Inherits:
Object
  • Object
show all
Defined in:
lib/tcx_rb/workout.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#activitiesObject

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_altitudeObject



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_rateObject



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_paceObject



52
53
54
# File 'lib/tcx_rb/workout.rb', line 52

def avg_pace
  distance / time
end

#caloriesObject



68
69
70
# File 'lib/tcx_rb/workout.rb', line 68

def calories
  @activities.sum(&:calories)
end

#distanceObject



64
65
66
# File 'lib/tcx_rb/workout.rb', line 64

def distance
  @activities.sum(&:distance)
end

#max_altitudeObject



31
32
33
# File 'lib/tcx_rb/workout.rb', line 31

def max_altitude
  @activities.map(&:max_altitude).max
end

#max_heart_rateObject



18
19
20
# File 'lib/tcx_rb/workout.rb', line 18

def max_heart_rate
  @activities.map(&:max_heart_rate).max
end

#max_paceObject



44
45
46
# File 'lib/tcx_rb/workout.rb', line 44

def max_pace
  @activities.map(&:max_pace).max
end

#min_altitudeObject



35
36
37
# File 'lib/tcx_rb/workout.rb', line 35

def min_altitude
  @activities.map(&:min_altitude).min
end

#min_heart_rateObject



22
23
24
# File 'lib/tcx_rb/workout.rb', line 22

def min_heart_rate
  @activities.map(&:min_heart_rate).min
end

#min_paceObject



48
49
50
# File 'lib/tcx_rb/workout.rb', line 48

def min_pace
  @activities.map(&:min_pace).min
end

#timeObject



60
61
62
# File 'lib/tcx_rb/workout.rb', line 60

def time
  @activities.sum(&:time)
end

#total_tpsObject



56
57
58
# File 'lib/tcx_rb/workout.rb', line 56

def total_tps
  @activities.sum(&:total_tps)
end