class RomanNumber::Converter
Public Class Methods
convert_int(value)
click to toggle source
# File lib/RomanNumber.rb, line 23 def self.convert_int(value) if !value.is_a? Integer raise ArgumentError, "'#{value}' is not a valid integer value.", caller end result = "" NUMBERS.each do |key,x| if value >= x result += key*(value/x) value = value % x end end return result end
convert_roman(value)
click to toggle source
# File lib/RomanNumber.rb, line 8 def self.convert_roman(value) if value !~ /^[IVXLCDM]*$/ raise ArgumentError, "'#{value}' is not a valid roman number.", caller end result = 0 value.strip! NUMBERS.each do |key,x| roman_char = /^#{key}/ while value.slice!(roman_char) result += x end end return result end