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
|