Extend Float and FixNum to do calculations in S.I. units
1 2 module SiUnits 3 def mega; self * 1000.kilo; end 4 def kilo; self * 1000; end 5 def milli; self * 0.001; end 6 def micro; self * 0.001.milli; end 7 8 def seconds; self; end 9 def minutes; self * 60; end 10 def hours; self * 60.minutes; end 11 def days; self * 24.hours; end 12 def years; self * 365.days; end 13 14 def metres; self; end 15 16 def grams; self * 0.001; end 17 end 18 19 class Float; include SiUnits; end 20 class Fixnum; include SiUnits; end 21 22 p 2.days # => 172800 23 p 3.milli.metres # => 0.003 24 p 4.kilo.grams # => 4.0
Note: This code is under the Creative Commons Attribution-NonCommercial-ShareAlike License.