Class: Runby::RunTypes::DistanceRun

Inherits:
Runby::RunType show all
Defined in:
lib/runby_pace/run_types/distance_run.rb

Overview

Defines the venerable “distance run”, the backbone of any distance running program.

Most of your runs should be at this pace. Harder than an "easy run" but still conversational.

Defined Under Namespace

Classes: GoldenPaces

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDistanceRun

Returns a new instance of DistanceRun.


18
19
20
21
# File 'lib/runby_pace/run_types/distance_run.rb', line 18

def initialize
  @fast_pace_calculator = PaceCalculator.new(GoldenPaces.fast, 3.675)
  @slow_pace_calculator = PaceCalculator.new(GoldenPaces.slow, 2.175)
end

Instance Attribute Details

#fast_pace_calculatorObject (readonly)

Returns the value of attribute fast_pace_calculator


8
9
10
# File 'lib/runby_pace/run_types/distance_run.rb', line 8

def fast_pace_calculator
  @fast_pace_calculator
end

#slow_pace_calculatorObject (readonly)

Returns the value of attribute slow_pace_calculator


8
9
10
# File 'lib/runby_pace/run_types/distance_run.rb', line 8

def slow_pace_calculator
  @slow_pace_calculator
end

Instance Method Details

#descriptionObject


10
11
12
# File 'lib/runby_pace/run_types/distance_run.rb', line 10

def description
  'Distance Run'
end

#explanationObject


14
15
16
# File 'lib/runby_pace/run_types/distance_run.rb', line 14

def explanation
  'Most of your weekly training should be comprised of Distance Runs. They are faster than easy runs, but you should still be able to carry on a conversation.'
end

#lookup_pace(five_k_time, distance_units = :km) ⇒ Object


23
24
25
26
27
# File 'lib/runby_pace/run_types/distance_run.rb', line 23

def lookup_pace(five_k_time, distance_units = :km)
  fast = @fast_pace_calculator.calc(five_k_time, distance_units)
  slow = @slow_pace_calculator.calc(five_k_time, distance_units)
  PaceRange.new(fast, slow)
end