Как работает конвертация арабских чисел в римские?
я начинающий в программировании на Ruby, я начал делать проект my_roman_numerals_converter, дословно конвертировать арабские числа в римские. И недавно я наткнулся на такой код, он работает правильно, так как надо, но я его не понимаю. А я хочу понимать его, поэтому может кто нибудь объяснить как работает данный код?
def my_roman_numerals_converter(param_1)
symbols = {0=>["I","V"],1=>["X","L"],2=>["C","D"],3=>["M"]}
reversed_digits = param_1.to_s.split(//).reverse
romans =[]
reversed_digits.length.times do |i|
if reversed_digits[i].to_i< 4
romans<<(symbols[i][0]*reversed_digits[i].to_i)
elsif reversed_digits[i].to_i == 4
romans<<(symbols[i][0]+ symbols[i][1])
elsif reversed_digits[i].to_i == 9
romans<<(symbols[i][0] + symbols[i+1][0])
else
romans<<(symbols[i][1] + (symbols[i][0]*((reversed_digits[i].to_i)-5)))
end
end
romans.reverse.join("")
end