Я написал небольшое небольшое приложение, которое берет базовый файл кода с некоторыми ключевыми словами, файл замен для ключевых слов и выводит новый файл с замененными ключевыми словами.
Когда я использовал 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