padrino-0.9.23 を ruby-1.9.2p180 で動かそうとしたらどうにも Yaml で i18n の locale をロードしようとしたときに落ちてしまうのでちょっと調べてみた。
原因は padrino-core とかその他大勢で下のような yaml ファイルをロード使用とした時に psych のパースで死んでいるみたい。まずは普通に syck でパースしてみる。
>> require 'yaml' => true >> ::YAML::ENGINE.yamler => "syck" >> YAML.load("[:foo, :bar]") => [:foo, :bar]
今度は psych でやってみる。
>> ::YAML::ENGINE.yamler = 'psych' => "psych" >> YAML.load("[:foo, :bar]") Psych::SyntaxError: couldn't parse YAML at line 2 column 0
うーん、psych の挙動はよくわかってないけど、これはいいんかなあ。ひとまず syck にするとパースできるみたいなので padrino の boot.rb で
::YAML::ENGINE.yamler = 'syck'
としてお茶を濁すことにした。ひとまず padrino の locale を互換性のある形にするのは後で考えることにする。