Module: Numeric::Multipliers

Included in:
Numeric
Defined in:
lib/standard/facets/multipliers.rb

Overview

Numeric::Multipliers

Adds methods to Numeric to make working with magnitudes (kilo, mega, giga, milli, micro, etc.)

1.kilo               #=> 1000
1.milli              #=> 0.001
1.kibi               #=> 1024

To display a value in a certain denomination, simply perform the inverse operation by placing the multiplier called on unit (1) in the denominator.

(1000 / 1.kilo)        #=> 1
(1024 / 1.kibi)        #=> 1

Thanks to Rich Kilmer and bytes.rb which inspired this library.

Instance Method Summary collapse

Instance Method Details

#attoObject


43
# File 'lib/standard/facets/multipliers.rb', line 43

def atto  ; self.to_f / 1000000000000000000 ; end

#centiObject


37
# File 'lib/standard/facets/multipliers.rb', line 37

def centi ; self.to_f / 100 ; end

#deciObject

SI Fractional


36
# File 'lib/standard/facets/multipliers.rb', line 36

def deci  ; self.to_f / 10 ; end

#dekaObject

SI Multipliers


25
# File 'lib/standard/facets/multipliers.rb', line 25

def deka  ; self * 10 ; end

#exaObject


32
# File 'lib/standard/facets/multipliers.rb', line 32

def exa   ; self * 1000000000000000000 ; end

#exbiObject


52
# File 'lib/standard/facets/multipliers.rb', line 52

def exbi ; self * 1024**6 ; end

#femtoObject


42
# File 'lib/standard/facets/multipliers.rb', line 42

def femto ; self.to_f / 1000000000000000 ; end

#gibiObject


49
# File 'lib/standard/facets/multipliers.rb', line 49

def gibi ; self * 1024**3 ; end

#gigaObject


29
# File 'lib/standard/facets/multipliers.rb', line 29

def giga  ; self * 1000000000 ; end

#hectoObject


26
# File 'lib/standard/facets/multipliers.rb', line 26

def hecto ; self * 100 ; end

#kibiObject

SI Binary


47
# File 'lib/standard/facets/multipliers.rb', line 47

def kibi ; self * 1024 ; end

#kiloObject


27
# File 'lib/standard/facets/multipliers.rb', line 27

def kilo  ; self * 1000 ; end

#mebiObject


48
# File 'lib/standard/facets/multipliers.rb', line 48

def mebi ; self * 1024**2 ; end

#megaObject


28
# File 'lib/standard/facets/multipliers.rb', line 28

def mega  ; self * 1000000 ; end

#microObject


39
# File 'lib/standard/facets/multipliers.rb', line 39

def micro ; self.to_f / 1000000 ; end

#milliObject


38
# File 'lib/standard/facets/multipliers.rb', line 38

def milli ; self.to_f / 1000 ; end

#nanoObject


40
# File 'lib/standard/facets/multipliers.rb', line 40

def nano  ; self.to_f / 1000000000 ; end

#pebiObject


51
# File 'lib/standard/facets/multipliers.rb', line 51

def pebi ; self * 1024**5 ; end

#petaObject


31
# File 'lib/standard/facets/multipliers.rb', line 31

def peta  ; self * 1000000000000000 ; end

#picoObject


41
# File 'lib/standard/facets/multipliers.rb', line 41

def pico  ; self.to_f / 1000000000000 ; end

#tebiObject


50
# File 'lib/standard/facets/multipliers.rb', line 50

def tebi ; self * 1024**4 ; end

#teraObject


30
# File 'lib/standard/facets/multipliers.rb', line 30

def tera  ; self * 1000000000000 ; end