Module: JsonTestData::NumberHelper
- Included in:
- Number
- Defined in:
- lib/json_test_data/data_structures/helpers/number_helper.rb
Instance Method Summary collapse
- #adjust_for_maximum(number:, maximum: nil, step_size: nil) ⇒ Object
- #adjust_for_minimum(number:, minimum: nil, step_size: nil) ⇒ Object
- #between(min:, max:, integer: false) ⇒ Object
- #mean(*numbers) ⇒ Object
Instance Method Details
#adjust_for_maximum(number:, maximum: nil, step_size: nil) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/json_test_data/data_structures/helpers/number_helper.rb', line 3 def adjust_for_maximum(number:, maximum: nil, step_size: nil) return number unless (maximum && number >= maximum) num = !!step_size ? number - step_size : maximum - 1 adjust_for_maximum(number: num, maximum: maximum, step_size: step_size) end |
#adjust_for_minimum(number:, minimum: nil, step_size: nil) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/json_test_data/data_structures/helpers/number_helper.rb', line 10 def adjust_for_minimum(number:, minimum: nil, step_size: nil) return number unless minimum && minimum >= number num = !!step_size ? number + step_size : minimum + 1 adjust_for_minimum(number: num, minimum: minimum, step_size: step_size) end |
#between(min:, max:, integer: false) ⇒ Object
17 18 19 |
# File 'lib/json_test_data/data_structures/helpers/number_helper.rb', line 17 def between(min:, max:, integer: false) return integer ? mean(min, max).round(0) : mean(min, max) end |
#mean(*numbers) ⇒ Object
21 22 23 |
# File 'lib/json_test_data/data_structures/helpers/number_helper.rb', line 21 def mean(*numbers) numbers.inject(:+).to_f.quo(numbers.length) end |