問題があります。YAMLはruby1.8と1.9でまったく同じようには機能しません。特にDateTimeオブジェクトをダンプする場合。
Ruby 1.8:
require 'yaml'
YAML.dump(DateTime.now)
=> "--- 2012-06-21T14:29:02+02:00\n"
Ruby 1.9:
require 'yaml'
YAML.dump(DateTime.now)
=> "--- !ruby/object:DateTime 2012-06-21 14:29:41.874102975 +02:00\n...\n"
気になるのは!ruby / object:DateTimeタグです。これは非常に面倒です。1.9でTimeオブジェクトを使用すると、問題が解決します。
YAML.dump(DateTime.now.to_time)
=> "--- 2012-06-21 14:31:37.904841646 +02:00\n...\n"
問題は、to_timesがruby1.8に存在しないことです。さらに、ruby 1.8 Timeクラスはタイムゾーンを処理しません(任意のタイムゾーンでTimeオブジェクトを作成することはできません)。
可能であれば、時間形式を同じにしたいと思います。
では、どうすればDateTimeオブジェクトをYAMLにダンプできますか?