root@e5432af20b73:/# ruby -v ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu] root@e5432af20b73:/# dpkg -l | grep libyaml ii libyaml-0-2:amd64 0.2.2-1build2 amd64 Fast YAML 1.1 parser and emitter library root@e5432af20b73:/# ruby -ryaml -e 'p({"foo" => nil}.to_yaml)' "---\nfoo: \n" ^----- ここに空白がある root@7ea023943991:/# ruby -v ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) [x86_64-linux-gnu] root@7ea023943991:/# dpkg -l | grep libyaml ii libyaml-0-2:amd64 0.2.5-1 amd64 Fast YAML 1.1 parser and emitter library root@7ea023943991:/# ruby -ryaml -e 'p({"foo" => nil}.to_yaml)' "---\nfoo:\n" ^^^---- 空白がない
Rubyでto_yamlした内容をファイルに書き出していたリポジトリで差分になっていたので気が付いた。 Ruby3系から外部のlibyamlを使うようになったので地味にバージョンごとに動作が違うことが起こるのだなぁという学び。