Module: Chroma::Helpers::Bounders
- Included in:
- Color, Converters::Base, RgbGenerator::Base
- Defined in:
- lib/chroma/helpers/bounders.rb
Instance Method Summary collapse
-
#bound01(n, max) ⇒ Float
Bounds a value
n
that is from0
tomax
to0
to1
. -
#bound_alpha(a) ⇒ Numeric
Ensure alpha value
a
is between0
and1
. -
#clamp01(n) ⇒ Numeric
Ensures a number between
0
and1
. -
#to_percentage(n) ⇒ String, Float
Converts
n
to a percentage type value.
Instance Method Details
#bound01(n, max) ⇒ Float
Bounds a value n
that is from 0
to max
to 0
to 1
.
9 10 11 12 13 14 15 16 17 |
# File 'lib/chroma/helpers/bounders.rb', line 9 def bound01(n, max) is_percent = n.to_s.include? '%' n = [max, [0, n.to_f].max].min n = (n * max).to_i / 100.0 if is_percent return 1 if (n - max).abs < 0.000001 (n % max) / max.to_f end |
#bound_alpha(a) ⇒ Numeric
Ensure alpha value a
is between 0
and 1
.
23 24 25 26 27 |
# File 'lib/chroma/helpers/bounders.rb', line 23 def bound_alpha(a) a = a.to_f a = 1 if a < 0 || a > 1 a end |
#clamp01(n) ⇒ Numeric
Ensures a number between 0
and 1
. Returns n
if it is between 0
and 1
.
34 35 36 |
# File 'lib/chroma/helpers/bounders.rb', line 34 def clamp01(n) [1, [0, n].max].min end |
#to_percentage(n) ⇒ String, Float
Converts n
to a percentage type value.
42 43 44 45 46 |
# File 'lib/chroma/helpers/bounders.rb', line 42 def to_percentage(n) n = n.to_f n = "#{n * 100}%" if n <= 1 n end |