runby_pace 0.6.147 → 0.6.148
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 21d8ca14bed1ef28f025cc8ec3801f57fcc9dbb4
         | 
| 4 | 
            +
              data.tar.gz: eae36a578fb5891362eaa872f5fd911d2435abc1
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e9ffe6f9a3a7cb6caa1df48ecf6463a12369d85e02b1aaeb853812de4de69ca8b2f6560a1bf25e8f7e4fd04fe383d71ad544cf600c2d945350ea4c644bcfabd1
         | 
| 7 | 
            +
              data.tar.gz: 524e6a96866584524cc0bce6408d9b7968762f327221f3c373a380680cb487dfd3664d00f8d3debd13c45e81fa89c58a5715e7d62a9b0c6676fb81ef1db28f16
         | 
    
        data/lib/runby_pace.rb
    CHANGED
    
    | @@ -2,6 +2,7 @@ | |
| 2 2 | 
             
            require 'runby_pace/version'
         | 
| 3 3 | 
             
            Dir[File.dirname(__FILE__) + '/runby_pace/*.rb'].each { |file| require file }
         | 
| 4 4 | 
             
            Dir[File.dirname(__FILE__) + '/runby_pace/run_types/*.rb'].each { |file| require file }
         | 
| 5 | 
            +
            Dir[File.dirname(__FILE__) + '/runby_pace/utility/*.rb'].each { |file| require file }
         | 
| 5 6 |  | 
| 6 7 | 
             
            # The main module
         | 
| 7 8 | 
             
            module Runby
         | 
    
        data/lib/runby_pace/pace.rb
    CHANGED
    
    | @@ -117,7 +117,7 @@ module Runby | |
| 117 117 | 
             
                end
         | 
| 118 118 |  | 
| 119 119 | 
             
                def distance_covered_over_time(time)
         | 
| 120 | 
            -
                  time =  | 
| 120 | 
            +
                  time = Runby.sanitize(time).as(RunbyTime)
         | 
| 121 121 | 
             
                  if time.total_minutes.zero? || @distance.multiplier.zero?
         | 
| 122 122 | 
             
                    return Runby::Distance.new(@distance.uom, 0)
         | 
| 123 123 | 
             
                  end
         | 
| @@ -41,8 +41,8 @@ module Runby | |
| 41 41 | 
             
                # Calculate the prescribed pace for the given 5K time
         | 
| 42 42 | 
             
                # @return [Pace]
         | 
| 43 43 | 
             
                def calc(five_k_time, distance_units = :km)
         | 
| 44 | 
            -
                  five_k_time =  | 
| 45 | 
            -
                  distance_units =  | 
| 44 | 
            +
                  five_k_time = Runby.sanitize(five_k_time).as(RunbyTime)
         | 
| 45 | 
            +
                  distance_units = Runby.sanitize(distance_units).as(DistanceUnit)
         | 
| 46 46 |  | 
| 47 47 | 
             
                  minutes_per_unit = calculate_minutes_per_unit(distance_units, five_k_time)
         | 
| 48 48 | 
             
                  build_pace minutes_per_unit, distance_units
         | 
    
        data/lib/runby_pace/run_math.rb
    CHANGED
    
    | @@ -4,9 +4,9 @@ module Runby | |
| 4 4 | 
             
              # An assortment of mathematical functions related to running.
         | 
| 5 5 | 
             
              class RunMath
         | 
| 6 6 | 
             
                def self.predict_race_time(race1_distance, race1_time, target_distance)
         | 
| 7 | 
            -
                  race1_distance =  | 
| 8 | 
            -
                  race1_time =  | 
| 9 | 
            -
                  target_distance =  | 
| 7 | 
            +
                  race1_distance = Runby.sanitize(race1_distance).as(Distance)
         | 
| 8 | 
            +
                  race1_time = Runby.sanitize(race1_time).as(RunbyTime)
         | 
| 9 | 
            +
                  target_distance = Runby.sanitize(target_distance).as(Distance)
         | 
| 10 10 |  | 
| 11 11 | 
             
                  race1_time * (target_distance / race1_distance)**1.06
         | 
| 12 12 | 
             
                end
         | 
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Runby
         | 
| 4 | 
            +
              module Utility
         | 
| 5 | 
            +
                # Helps sanitize method parameters. (See RSpec documentation for examples)
         | 
| 6 | 
            +
                # Example: time = ParameterSanitizer.sanitize(time).as(RunbyTime)
         | 
| 7 | 
            +
                # If the parameter is already of the expected type,
         | 
| 8 | 
            +
                # Expects `type` to have a `parse` method.
         | 
| 9 | 
            +
                class ParameterSanitizer
         | 
| 10 | 
            +
                  attr_reader :parameter
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  def initialize(parameter)
         | 
| 13 | 
            +
                    @parameter = parameter
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  def self.sanitize(parameter)
         | 
| 17 | 
            +
                    ParameterSanitizer.new parameter
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  def as(type)
         | 
| 21 | 
            +
                    return @parameter if @parameter.is_a?(type)
         | 
| 22 | 
            +
                    raise "Unable to sanitize parameter of type #{type}. Missing 'parse' method." unless type.respond_to? :parse
         | 
| 23 | 
            +
                    type.parse(@parameter)
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              # Just a shortcut method
         | 
| 29 | 
            +
              def self.sanitize(parameter)
         | 
| 30 | 
            +
                Runby::Utility::ParameterSanitizer.sanitize(parameter)
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: runby_pace
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.6. | 
| 4 | 
            +
              version: 0.6.148
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ty Walls
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017-07- | 
| 11 | 
            +
            date: 2017-07-11 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -79,7 +79,6 @@ files: | |
| 79 79 | 
             
            - lib/runby_pace/pace.rb
         | 
| 80 80 | 
             
            - lib/runby_pace/pace_calculator.rb
         | 
| 81 81 | 
             
            - lib/runby_pace/pace_range.rb
         | 
| 82 | 
            -
            - lib/runby_pace/parameter_sanitizer.rb
         | 
| 83 82 | 
             
            - lib/runby_pace/run_math.rb
         | 
| 84 83 | 
             
            - lib/runby_pace/run_type.rb
         | 
| 85 84 | 
             
            - lib/runby_pace/run_types/all_run_types.g.rb
         | 
| @@ -99,6 +98,7 @@ files: | |
| 99 98 | 
             
            - lib/runby_pace/runby_time_parser.rb
         | 
| 100 99 | 
             
            - lib/runby_pace/speed.rb
         | 
| 101 100 | 
             
            - lib/runby_pace/speed_range.rb
         | 
| 101 | 
            +
            - lib/runby_pace/utility/parameter_sanitizer.rb
         | 
| 102 102 | 
             
            - lib/runby_pace/version.rb
         | 
| 103 103 | 
             
            - misc/rubymine.png
         | 
| 104 104 | 
             
            - runby_pace.gemspec
         | 
| @@ -106,7 +106,7 @@ homepage: https://github.com/tygerbytes/runby-pace | |
| 106 106 | 
             
            licenses:
         | 
| 107 107 | 
             
            - MIT
         | 
| 108 108 | 
             
            metadata:
         | 
| 109 | 
            -
              commit-hash:  | 
| 109 | 
            +
              commit-hash: 9f81e7b07e253e8d0dff77344adb42ae652cd150
         | 
| 110 110 | 
             
            post_install_message: 
         | 
| 111 111 | 
             
            rdoc_options: []
         | 
| 112 112 | 
             
            require_paths:
         | 
| @@ -1,26 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            def sanitize_arg(parameter)
         | 
| 4 | 
            -
              Runby::ParameterSanitizer.sanitize(parameter)
         | 
| 5 | 
            -
            end
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            module Runby
         | 
| 8 | 
            -
              # Sanitizes method parameters
         | 
| 9 | 
            -
              class ParameterSanitizer
         | 
| 10 | 
            -
                attr_reader :parameter
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                def initialize(parameter)
         | 
| 13 | 
            -
                  @parameter = parameter
         | 
| 14 | 
            -
                end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                def self.sanitize(parameter)
         | 
| 17 | 
            -
                  ParameterSanitizer.new parameter
         | 
| 18 | 
            -
                end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                def as(type)
         | 
| 21 | 
            -
                  return @parameter if @parameter.is_a?(type)
         | 
| 22 | 
            -
                  raise "Unable to sanitize parameter of type #{type}. Missing 'parse' method." unless type.respond_to? :parse
         | 
| 23 | 
            -
                  type.parse(@parameter)
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
            end
         |