Чтение и запись файлов YAML без уничтожения якорей и псевдонимов?
Мне нужно открыть файл YAML с псевдонимами, используемыми внутри:
defaults: &defaults
foo: bar
zip: button
node:
<<: *defaults
foo: other
Это, очевидно, распространяется на эквивалентный документ YAML:
defaults:
foo: bar
zip: button
node:
foo: other
zip: button
КоторыйYAML::load
читает это как.
Мне нужно установить новые ключи в этом документе YAML, а затем записать его обратно на диск, максимально сохранив исходную структуру.
Я смотрел наYAML :: магазин, но это полностью уничтожает псевдонимы и якоря.
Есть ли что-нибудь доступное, что могло бы что-то вроде:
thing = Thing.load("config.yml")
thing[:node][:foo] = "yet another"
Сохранение документа обратно как:
defaults: &defaults
foo: bar
zip: button
node:
<<: *defaults
foo: yet another
?
Я решил использовать YAML для этого из-за того, что он хорошо справляется с псевдонимами, но написание YAML, содержащее псевдонимы, кажется в реальности чем-то вроде унылого игрового поля.