Sha256: 8a46e396f1248fa3b0eb0eb2082de7136e012d807c92d80075f596cae1f8834d

Contents?: true

Size: 1.31 KB

Versions: 16

Compression:

Stored size: 1.31 KB

Contents

module Runby
  module RunTypes
    # Arguably one of the most important run types, the "long run" is harder than an "easy run", but easier than
    #  a "distance run". It should remain conversational.
    class LongRun < RunType
      attr_reader :slow_pace_data, :fast_pace_data

      def description
        'Long Run'
      end

      def initialize
        @fast_pace_data = PaceData.new(GoldenPaces.fast[:'14:00'], GoldenPaces.fast[:'42:00'], 2.125)
        @slow_pace_data = PaceData.new(GoldenPaces.slow[:'14:00'], GoldenPaces.slow[:'42:00'], 1.55)
      end

      def pace(five_k_time, distance_units = :km)
        fast = @fast_pace_data.calc(five_k_time, distance_units)
        slow = @slow_pace_data.calc(five_k_time, distance_units)
        PaceRange.new(fast, slow)
      end

      # Used in testing, contains hashes mapping 5K race times with the recommended pace-per-km for this run type.
      class GoldenPaces
        def self.fast
          { '14:00': '04:00', '15:00': '04:16', '20:00': '05:31', '25:00': '06:44', '30:00': '07:54', '35:00': '09:01', '40:00': '10:07', '42:00': '10:32' }
        end

        def self.slow
          { '14:00': '04:39', '15:00': '04:57', '20:00': '06:22', '25:00': '07:43', '30:00': '09:00', '35:00': '10:15', '40:00': '11:26', '42:00': '11:53' }
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
runby_pace-0.6.91 lib/runby_pace/run_types/long_run.rb
runby_pace-0.6.90 lib/runby_pace/run_types/long_run.rb
runby_pace-0.6.89 lib/runby_pace/run_types/long_run.rb
runby_pace-0.6.88 lib/runby_pace/run_types/long_run.rb
runby_pace-0.6.87 lib/runby_pace/run_types/long_run.rb
runby_pace-0.5.86 lib/runby_pace/run_types/long_run.rb
runby_pace-0.5.85 lib/runby_pace/run_types/long_run.rb
runby_pace-0.4.84 lib/runby_pace/run_types/long_run.rb
runby_pace-0.4.83 lib/runby_pace/run_types/long_run.rb
runby_pace-0.4.82 lib/runby_pace/run_types/long_run.rb
runby_pace-0.4.81 lib/runby_pace/run_types/long_run.rb
runby_pace-0.4.79 lib/runby_pace/run_types/long_run.rb
runby_pace-0.4.78 lib/runby_pace/run_types/long_run.rb
runby_pace-0.4.77 lib/runby_pace/run_types/long_run.rb
runby_pace-0.3.76 lib/runby_pace/run_types/long_run.rb
runby_pace-0.2.75 lib/runby_pace/run_types/long_run.rb