class Numeric

Numeric extensions

Public Instance Methods

floor_precision(precision) click to toggle source

@return self, truncated to a given precision

@example

x = 0.12345
x.floor_precision(0) => 0.0
x.floor_precision(1) => 0.1
x.floor_precision(2) => 0.12
x.floor_precision(3) => 0.123
# File lib/sixarm_ruby_ramp/numeric.rb, line 52
def floor_precision(precision)
  return self if is_a?(Float) && nan?
  (self * (10 ** precision)).truncate.fdiv(10 ** precision)
end
if(flag) click to toggle source

@return 0 if the given flag is any of: nil, false, 0, [], {}

@example

3.if(true) => 3
3.if(false) => 0
# File lib/sixarm_ruby_ramp/numeric.rb, line 13
def if(flag)
  if [nil,false,0,[],{}].include?(flag) then 0 else self end
end
percent(ndigits=0) click to toggle source

@return self as a percent, i.e. * 100 then call round.

@example

x = 0.12345
x.percent => 12
x.percent(1) => 12.3
x.percent(2) => 12.34
x.percent(-1) => 10
# File lib/sixarm_ruby_ramp/numeric.rb, line 38
def percent(ndigits=0)
  (self * 100).round(ndigits)
end
unless(flag) click to toggle source

@return self if flag is nil, false, 0, [], {}; otherwise return 0.

@example

3.unless(true) => 0
3.unless(false) => 3
# File lib/sixarm_ruby_ramp/numeric.rb, line 24
def unless(flag)
  if [nil,false,0,[],{}].include?(flag) then self else 0 end
end