class Numeric

Public Instance Methods

from_scale(range) click to toggle source

convert value from old scale (min to max) to (0..1) scale

# File lib/artoo/ext/numeric.rb, line 31
def from_scale(range)
  (self.to_f - range.min) / (range.max - range.min)
end
to_scale(range) click to toggle source

convert value from (0..1) scale to new (min to max) scale

# File lib/artoo/ext/numeric.rb, line 36
def to_scale(range)
  ((self.to_f * (range.max - range.min) + range.min).ceil).within(range)
end
within(range) click to toggle source

keep returned value absolutely within range

# File lib/artoo/ext/numeric.rb, line 41
def within(range)
  case
  when self < range.min
    range.min
  when self > range.max
    range.max
  else
    self
  end
end