Мне нужно открыть файл 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, которая содержит псевдонимы, в действительности выглядит немного мрачным игровым полем.