Spyc 0.2.5 → 0.4.2 アップデート注意事項
またネタが混んできたから日記の日付をずらしちゃうでござる。
※ つかそもそもこのネタ古くなってあんまり意味ないかも。最新版(書いてる時点で 0.4.5)をちゃんとチェックしてね!
spyc - Project Hosting on Google Code
てゆーか Spyc のサイトの引っ越しそのものを日記には書いてないな。いかんいかん。
PHP で YAML を扱う際に人気のあるライブラリである Spyc は sorceforge.net に嫌気がさしたらしく、Goolgle Code の方に引っ越してます。1
はい、以上。で。問題は 0.4 の方。
基本的に 0.3 で書き直したから速くなったよ!という話だったんだけど、自分は stable 志向なこともあって今まで試してなかった。今回 0.4 系を試してみて、実は速さはよく分からなかった2んだけど、今まで parse できなかったケースで parse できるようになってて3、これはよいと移行することにした。ただちょっと気になる点が。
それはフロースタイルで余計な空白の入るケースがあるってこと。そもそも YAML のフロースタイルをどんだけの人が使ってるのかという気もするけど、フロースタイルは言ってみれば JSON スタイルのこと。
Rubyist Magazine - プログラマーのための YAML 入門 (初級編)
要はこういう形ね。
[aaa, bbb, ccc]
で、このとき
[aaa, bbb, ccc]
こんな風に他の行の容量に合わせて余計な空白を入れていたんだけど、この空白がそのまま空白文字として返ってくるようになったみたい。ただし 0.4.2 でしか試してないので、書いてる時点で既にリリースされている 0.4.5 では 0.2 系のときと同じ動作に戻ってるかもしれない4。そもそも空白を入れたい場合は明示的に "" で囲むんじゃないかと思うんだけどね。まぁ、
こういう動作をする場合もあるので注意が必要かもね
という話でした。
cf. Twitter / wtnabe: Spyc 0.2.5 - 0.4.2 上げたらフロー …
本来はこんな風におまけで書くことじゃないかもしれないけど、Spyc は文字コードを考慮しないから比較的古いコードから設定をひっぺがすのに便利だよね。euc-jp 生書きの設定を YAML に追い出しておいて、読み込み時に文字コード変換を挟むようにしておくと、あとで utf-8 に変更するとか楽にできる。