class RomanNumeralGenerator
Constants
- VALUES
Public Instance Methods
generate(number)
click to toggle source
# File lib/roman_numeral_generator.rb, line 18 def generate(number) check_range(number) arabic_to_roman(number) end
is_out_of_range?(number)
click to toggle source
# File lib/roman_numeral_generator.rb, line 23 def is_out_of_range?(number) number < 1 || number > 3999 end
Private Instance Methods
arabic_to_roman(number)
click to toggle source
# File lib/roman_numeral_generator.rb, line 29 def arabic_to_roman(number) [].tap do |answer| VALUES.each do |numeral, roman| while number >= numeral answer << roman number -= numeral end end end.join end
check_range(number)
click to toggle source
# File lib/roman_numeral_generator.rb, line 40 def check_range(number) raise RangeError.new("Use only number in [1..3999] range") if is_out_of_range?(number) end