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