Ich schrieb eine schnelle kleine Anwendung, die eine Basisdatei des Codes mit einigen Schlüsselwörtern, eine Datei der Ersetzungen für die Schlüsselwörter nimmt und eine neue Datei mit den Schlüsselwörtern ausgibt, die ersetzt werden.Ruby 1.9 Array.to_s verhält sich anders?
Wenn ich Ruby 1.8 verwendete, würden meine Ausgaben gut aussehen. Bei der Verwendung von Ruby 1.9 enthält mein ersetzter Code Zeilenumbrüche anstelle von Zeilenvorschüben.
Zum Beispiel, ich sehe so etwas wie:
["\r\nDim RunningNormal_1 As Boolean", "\r\nDim RunningNormal_2 As Boolean", "\r\nDim RunningNormal_3 As Boolean"]
statt:
Dim RunningNormal_1 As Boolean
Dim RunningNormal_2 As Boolean
Dim RunningNormal_3 As Boolean
i ein Hash Ersatz verwenden { "STICHWORT" => [ "1", "2", "3"]} und ein Array der ersetzten Linien.
ich verwende diesen Block den Ersatz zu beenden:
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
Meine Vermutung ist, dass ich das Array Ausdrucken bin anstelle der Saiten innerhalb des Arrays. Irgendwelche Vorschläge für eine Lösung. Wenn ich meine ersetzte Zeichenfolge mit Puts debugge und drucke, sieht die Ausgabe korrekt aus. Wenn ich die Methode to_s verwende (so schreibt meine App die Ausgabe in die Ausgabedatei), sieht meine Ausgabe falsch aus.
Ein Update wäre nett, aber was ich wirklich wissen möchte, ist, was sich zwischen Ruby 1.8 und 1.9 geändert hat, die dieses Verhalten verursacht. Hat sich die to_s-Methode in Ruby 1.9 irgendwie geändert?
* ich bin unerfahren in Ruby
Codebeispiel schön – orip
i den Quellcode hinzugefügt werden würde, dass ich relevant hoffen. – jrsconfitto
+1. Ich habe Ruby 1.8 und 1.9 ziemlich oft benutzt, wusste aber nie über diesen Unterschied! –