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: 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