From 57857ce2b2378aeace0094e709503361fc7cdc75 Mon Sep 17 00:00:00 2001 From: baob Date: Thu, 2 Jun 2016 22:33:31 +0100 Subject: [PATCH] eliminate the result accumulator setup outside the reduce --- roman_numerals/roman_numerals_medium.rb | 8 +++----- roman_numerals/roman_numerals_medium_test.rb | 0 2 files changed, 3 insertions(+), 5 deletions(-) mode change 100644 => 100755 roman_numerals/roman_numerals_medium_test.rb 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