module SiUnits def mega; self * 1000.kilo; end def kilo; self * 1000; end def milli; self * 0.001; end def micro; self * 0.001.milli; end def seconds; self; end def minutes; self * 60; end def hours; self * 60.minutes; end def days; self * 24.hours; end def years; self * 365.days; end def metres; self; end def grams; self * 0.001; end end class Float; include SiUnits; end class Fixnum; include SiUnits; end p 2.days # => 172800 p 3.milli.metres # => 0.003 p 4.kilo.grams # => 4.0
Note: This code is under the Creative Commons Attribution-NonCommercial-ShareAlike License.