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: a23743b3322eb2563d9bacaf2d940fb3dd3ba7e4
4
- data.tar.gz: a3185adb6de60b111f7dc12727f3407638f94cf5
3
+ metadata.gz: 21d8ca14bed1ef28f025cc8ec3801f57fcc9dbb4
4
+ data.tar.gz: eae36a578fb5891362eaa872f5fd911d2435abc1
5
5
  SHA512:
6
- metadata.gz: 426b99ff4fc2dfac2252bfc7b99f5f6ce720686f28cd7196f4fdcf236d147c406d5d287594ad7839296ffa5990a7f2d0eb7db973b719bb4e58c753caafd4e487
7
- data.tar.gz: 9e39d983f87a91430e0d04aee92200f3208810e5752bdf638791527830b2445d4fee1ab04c7b42b67a1c16657fd12c5344fecdb4f12b3482d41a333238c49384
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
@@ -117,7 +117,7 @@ module Runby
117
117
  end
118
118
 
119
119
  def distance_covered_over_time(time)
120
- time = sanitize_arg(time).as(RunbyTime)
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 = sanitize_arg(five_k_time).as(RunbyTime)
45
- distance_units = sanitize_arg(distance_units).as(DistanceUnit)
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
@@ -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 = sanitize_arg(race1_distance).as(Distance)
8
- race1_time = sanitize_arg(race1_time).as(RunbyTime)
9
- target_distance = sanitize_arg(target_distance).as(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.147
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-07 00:00:00.000000000 Z
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: d8811ae095d9919ea5393bf0e6c93de27ae324f3
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