YAML
「YAMLの本来の使い方」を仕様から読み取ってみる
YAMLはJSONとは独立に、異なる目的で生まれた野心的な仕様である
もとはデータMarshallingフォーマットを意図
アンカーやタグなどの強力な構文は、これらの目的を満たすために必然的に生まれてきたもので、単なる便利機能というわけではない
YAMLパイプライン
オブジェクト構造を正確に再現する(=単なるシリアライズではない)ため複雑な手続きが必要
1. メモリ上のオブジェクトからノードグラフを構築する。
2. ノードグラフを展開してイベントツリーに変換する。
3. イベントツリーを文字列として表現する。
例
Delayed Jobはキューに入ったメッセージのhandlerカラムに、to_yamlしたオブジェクトを詰めている
https://github.com/collectiveidea/delayed_job/blob/92fb435131d05b8a8715ac52acaacd9cde89619c/lib/delayed/backend/base.rb#L68