2012-04-22 7 views
1

私はruby 1.8.7からruby 1.9.3にアップグレードしています。私は、YAMLのシリアル化されたフィールドがどのように読み込まれているかに違いがあることに気付きました。シリアル化された文字列の多くは、新しいYAML形式の整数に強制されています。例:YAMLでのRuby 1.9の移行シリアライズされたテキストフィールド

1.8.7 :010 > "2011_01".to_yaml 
=> "--- 2011_01\n" 
1.8.7 :011 > YAML.load("--- 2011_01\n") 

1.9.3p125 :001 > YAML.load("--- 2011_01\n") 
=> 201101 

原因は何ですか。新しいルビーの古い動作に戻す方法、または新しい形式にフィールドを移行する方法はありますか?

答えて

2

パーサとしてsyckを使用してみてください:

ruby-1.9.3-rc1 :001 > YAML::ENGINE.yamler = "syck" 
=> "syck" 
ruby-1.9.3-rc1 :002 > YAML.load("--- 2011_01\n") 
=> "2011_01" 
+0

感謝を!それがトリックでした。 – aaronjg

関連する問題