class Stressfactor::AveragePaceAccumulator
Attributes
intervals[RW]
Public Class Methods
new(intervals)
click to toggle source
# File lib/stressfactor/average_pace_accumulator.rb, line 5 def initialize(intervals) @intervals = intervals end
Public Instance Methods
average_pace(strategy: :raw)
click to toggle source
# File lib/stressfactor/average_pace_accumulator.rb, line 9 def average_pace(strategy: :raw) strategy_klass = strategy == :raw ? RawPaceStrategy : GradeAdjustedPaceStrategy intervals.inject(0) do |acc, interval| weighted_interval = (interval.distance / total_distance) * strategy_klass.calculate_for_interval(interval) acc + weighted_interval end end
Private Instance Methods
total_distance()
click to toggle source
Total elapsed time in minutes
# File lib/stressfactor/average_pace_accumulator.rb, line 18 def total_distance @total_distance ||= intervals.inject(0) do |acc, interval| acc + interval.distance end end