Class: Integer

Inherits:
Object
  • Object
show all
Defined in:
lib/to_roman.rb

Instance Method Summary collapse

Instance Method Details

#to_romanObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 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