diff --git a/roman_numerals/roman_numerals_medium.rb b/roman_numerals/roman_numerals_medium.rb index 03965a0..e3d80d4 100644 --- a/roman_numerals/roman_numerals_medium.rb +++ b/roman_numerals/roman_numerals_medium.rb @@ -42,13 +42,11 @@ def to_i(str) end def to_roman(number) - result = '' - ROMAN_NUMERALS.keys.reduce(number) {|to_be_converted, base_10_value| + ROMAN_NUMERALS.keys.reduce(['', number]) {|(result, to_be_converted), base_10_value| num_chars_needed, remainder = to_be_converted.divmod(base_10_value) result << ROMAN_NUMERALS[base_10_value] * num_chars_needed - remainder - } - result.to_subtractive_roman + [result, remainder] + }.first.to_subtractive_roman end def to_number(roman) diff --git a/roman_numerals/roman_numerals_medium_test.rb b/roman_numerals/roman_numerals_medium_test.rb old mode 100644 new mode 100755