設定ファイルとしてYAMLを扱うことが多いため、yamlを便利に扱うためにyaml_vaultとyaml_masterというgemを作っている。 yaml_vaultはYAMLの特定キーを暗号化・複合化するためのgemで、yaml_masterはmasterファイルとして指定されたyamlから一部のキーだけを切り出して別ファイルに書き出したり、まとめて設定ファイルを生成したりするためのgemだ。 そして、最近この二つのgemを改修するためにRubyのYAML生成処理を調べたので、その知見をまとめておく。 yaml_vaultは元々の動作では暗号化したり複合化したりすると、YAMLのエイリアス記法が展開されてしまうという動作上の限界があった。 こういうのが default: &default adapter: mysql encoding: utf8mb4 username root pro