2016-08-27 6 views
2

Ich habe eine Anforderung zur programmgesteuerten Bearbeitung von YAML-Dateien in Ruby, und ich muss leider auch die umschließenden Anführungszeichen behalten. In der Lage zu sein, die Kommentare zu behalten, wäre ein Bonus.Laden und speichern Sie eine YAML-Datei, ohne Anführungszeichen oder Kommentare in Ruby zu verlieren

Das heißt, wenn ich eine Datei haben:

--- 
foo: 'bar' 

oder

--- 
foo: "bar" 

Mein Skript muss es nicht so schreiben zurück:

--- 
foo: bar 

Und wie bereits erwähnt, im Idealfall Ich muss auch Kommentare aufbewahren.

Ohne auf den Pfad der Behandlung der gesamten Datei als Textfluss zu gehen, gibt es einen bequemen Weg, eines oder beide dieser Probleme zu lösen?

+0

Konnte man nicht einfach die Anweisungen [hier] (http://stackoverflow.com/questions/14532959/how-do-you-save-values-into-a-yaml-file) folgen, sondern mit einer Zeichenfolge statt einer ganzen Zahl? – Polyov

+0

Sie benötigen einen eigenen Parser, falls in Ruby nicht vorhanden ist, um den Kommentartext zu ignorieren. Wie bei der Datei, die die Anführungszeichen entfernt, das ist nach Yaml-Spezifikation, muss eine Zeichenkette nicht eingeschlossen sein, sondern wird normalerweise eingeschlossen, wenn sie die Zeichenkette weniger eindeutig macht (zB Zeichen wie '[' '' '' '' '' '' '' '' '' '' '' 'drin) – Rogue

Antwort

1

Zum Zeitpunkt des Schreibens scheint es unmöglich, dies in Ruby zu implementieren, es sei denn, Sie sind bereit, Ihren eigenen YAML-Parser zu schreiben. Ich habe andere Sprachen wie Perl und Python untersucht und festgestellt, dass es eine Python-Bibliothek namens Ruamel gibt, die das kann - oder genauer gesagt, sie wird dies tun können, wenn alle ihre Fehler behoben sind! Also habe ich meine Anwendung in Python neu geschrieben. Siehe auch diese Antwort here.

Verwandte Themen