Leia e escreva arquivos YAML sem destruir âncoras e aliases?

Eu preciso abrir um arquivo YAML com aliases usados ​​dentro dele:

defaults: &defaults
  foo: bar
  zip: button

node:
  <<: *defaults
  foo: other

Isso obviamente se expande para um documento YAML equivalente de:

defaults:
  foo: bar
  zip: button

node:
  foo: other
  zip: button

QualYAML::load lê como.

Eu preciso definir novas chaves neste documento YAML e, em seguida, gravá-lo de volta no disco, preservando a estrutura original, tanto quanto possível.

Eu olhei paraYAML :: Loja, mas isso destrói completamente os apelidos e âncoras.

Existe alguma coisa disponível que poderia algo ao longo das linhas de:

thing = Thing.load("config.yml")
thing[:node][:foo] = "yet another"

Salvando o documento de volta como:

defaults: &defaults
  foo: bar
  zip: button

node:
  <<: *defaults
  foo: yet another

?

Eu optei por usar o YAML para isso, porque ele lida com esse aliasing bem, mas escrever YAML que contém aliases parece ser um campo de aparência sombrio na realidade.

questionAnswers(3)

yourAnswerToTheQuestion