Проблема Ruby Gsub при использовании обратных ссылок и хэшей
Следующий код определяет хеш с регулярными выражениями (ключами) и заменами (значениями). Затем он перебирает хеш и соответственно заменяет строку.
Простая подстановка строк работает хорошо, но когда мне нужно вычислить результат перед его заменой (случай лет меняется), это не так. И это ключ к тому, что хеш определен заранее.
Что мне не хватает? Любая помощь будет очень ценится.
a = "After 45 years we cannot use this thing."
hash = {
/(\d+) years/ => "#{$1.to_f*2}" + ' days',
/cannot/ => 'of course we CAN'
}
hash.each {|k,v|
a.gsub!(k) { v }
}
puts a
Спасибо!