23 Ağustos 2007 Perşembe

Extend Float and FixNum to do calculations in S.I. units

Source: 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


0 Comments: