J'ai écrit une petite application rapide qui prend un fichier de base avec quelques mots-clés, un fichier de remplacements pour les mots-clés, et sort un nouveau fichier avec les mots-clés remplacés. Quand j'utilisais Ruby 1.8, mes sorties semblaient bien. Maintenant, en utilisant Ruby 1.9, mon code remplacé a les caractères de nouvelle ligne à la place des sauts de ligne.Ruby 1.9 Array.to_s se comporte différemment?
Par exemple, je vois quelque chose comme:
["\r\nDim RunningNormal_1 As Boolean", "\r\nDim RunningNormal_2 As Boolean", "\r\nDim RunningNormal_3 As Boolean"]
au lieu de:
Dim RunningNormal_1 As Boolean
Dim RunningNormal_2 As Boolean
Dim RunningNormal_3 As Boolean
i utilise un hachage de remplacement { "KEYWORD" => [ "1", "2", "3"]} et un tableau des lignes remplacées.
i utiliser ce bloc pour terminer le remplacement:
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
Mon instinct me dit que je suis l'impression du tableau au lieu des chaînes dans le tableau. Toutes les suggestions sur un correctif. Quand je débogue et imprime ma chaîne remplacée en utilisant puts, la sortie semble correcte. Lorsque j'utilise la méthode to_s (qui est la façon dont mon application écrit la sortie dans le fichier de sortie), ma sortie semble incorrecte.
Une correction serait bien, mais ce que je veux vraiment savoir, c'est ce qui a changé entre Ruby 1.8 et 1.9 qui provoque ce comportement. Est-ce que la méthode to_s a changé d'une manière ou d'une autre dans Ruby 1.9?
* Je suis inexpérimenté dans Ruby
exemple de code serait bien – orip
i ajouté le code source qui je l'espère est pertinente. – jrsconfitto
+1. J'utilise Ruby 1.8 et 1.9 un peu, mais je n'ai jamais su cette différence! –