Sha256: 0b10494a6359da342a2b45a0f495539984035698677e481d4e0e2903aa5f52f7
Contents?: true
Size: 811 Bytes
Versions: 2
Compression:
Stored size: 811 Bytes
Contents
require "RomanNumber/version" require "RomanNumber/numbers" module RomanNumber class Converter 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 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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
RomanNumber-0.1.2 | lib/RomanNumber.rb |
RomanNumber-0.1.1 | lib/RomanNumber.rb |