class Integer
Public Instance Methods
to_roman()
click to toggle source
# File lib/to_roman.rb, line 2 def to_roman num = self return "" if num <=0 || num >= 4000 signs = ['IIII','V','XXXX','L','CCCC','D','MMMM'] roman = signs.inject("") do |mem, sign| x = sign.size+1 d = num % x num = (num - d)/x mem = sign[0,d] + mem end roman.gsub!(/DCCCC/,'CM'); roman.gsub!(/CCCC/,'CD'); roman.gsub!(/LXXXX/,'XC'); roman.gsub!(/XXXX/,'XL'); roman.gsub!(/VIIII/,'IX'); roman.gsub!(/IIII/,'IV'); roman end