я написал небольшое приложение, которое берет базовый файл кода с некоторыми ключевыми словами, файл замен для ключевых слов и выводит новый файл с замененными ключевыми словами.
Когда я использовал Ruby 1.8, мои результаты будут выглядеть нормально. Теперь, когда я использую Ruby 1.9, мой замененный код содержит символы новой строки вместо перевода строки.
Например, я вижу что-то вроде:
["\r\nDim RunningNormal_1 As Boolean", "\r\nDim RunningNormal_2 As Boolean", "\r\nDim RunningNormal_3 As Boolean"]
вместо:
Dim RunningNormal_1 As Boolean
Dim RunningNormal_2 As Boolean
Dim RunningNormal_3 As Boolean
Я использую хэш замен {"KEYWORD" => ["1", "2", "3"]} и массив замененные строки.
Я использую этот блок для завершения замены:
resultingLibs.each do |x|
libraryString.sub!(/(<REPEAT>(.*?)<\/REPEAT>)/im) do |match|
x.each do |individual|
individual.to_s
end
end
end
#for each resulting group of the repeatable pattern,
#
#Write out the resulting libs to a combined string
Я догадываюсь, что я распечатываю массив вместо строк внутри массива. Любые предложения по исправлению. Когда я отлаживаю и печатаю замененную строку с помощью put, вывод выглядит правильным. Когда я использую метод to_s (именно так мое приложение записывает результат в выходной файл), мой результат выглядит неправильно.
Исправление было бы неплохо, но я действительно хочу знать, что изменилось между Ruby 1.8 и 1.9 что вызывает такое поведение. Изменился ли каким-то образом метод to_s в Ruby 1.9?
* я неопытен в Ruby