class Kabal::Roman
Public Instance Methods
convert(number)
click to toggle source
# File lib/kabal/languages/roman.rb, line 5 def convert(number) if number == 0 '0' else symbols = { 0 => ['I', 'V'], 1 => ['X', 'L'], 2 => ['C', 'D'], 3 => ['M'] } reversed_digits = number.to_s.split(//).reverse romans = [] reversed_digits.length.times do |i| if reversed_digits[i].to_i < 4 romans << (symbols[i][0] * reversed_digits[i].to_i) elsif reversed_digits[i].to_i == 4 romans << (symbols[i][0] + symbols[i][1]) elsif reversed_digits[i].to_i == 9 romans << (symbols[i][0] + symbols[i + 1][0]) else romans << (symbols[i][1] + (symbols[i][0] * ((reversed_digits[i].to_i) - 5))) end end romans.reverse.join '' end end