YAML / scalar / coercion boundary

YAMLの暗黙型を分けて確認する

真偽値・日付・数値・引用文字列・nullを同じ文字列として扱わず、実装へ渡す前の確認を合成caseで行います。特定parserの結果は断定しません。

scalarの確認境界

YAMLの裸のscalarは実装やschemaで解釈が変わるため、引用符と受け取り側の型を別に確認します。

plain scalar → type review → explicit quote
case確認する意味
boolean-likeyes/no・true/false様の値を真偽値候補として確認する。
date-like日付に見える文字列を日付候補として確認する。
leading-zero-number先頭ゼロを含む値を数値化せず文字列候補として確認する。
quoted-string引用符で文字列としての意図を明示する。
explicit-nullnullを明示した値と未指定を分けて確認する。

安全な確認の順番

  1. 裸のscalarか引用された文字列かを分ける。
  2. 真偽値・日付・数値に見える境界を記録する。
  3. schemaと受け取り側の型を別に確認する。
  4. 曖昧な値は推測で変換せず確認待ちにする。

このページは合成fixtureだけを扱います。upload、外部通信、保存領域、実装parserの断定はありません。