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