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 を互換性のある形にするのは後で考えることにする。