Extend Float And FixNum To Do Calculations In S.I. Units
Join the DZone community and get the full member experience.
Join For FreeFound at http://stephan.walter.name/Ruby_snippets
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.
Data Types
Opinions expressed by DZone contributors are their own.
Comments