runby_pace 0.6.147 → 0.6.148
Sign up to get free protection for your applications and to get access to all the features.
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
|