ruby to_yaml 2.0.0添加!ruby / object:哈希但YAML.load不会读取它

时间:2013-10-23 23:59:41

标签: ruby yaml

有没有办法用ruby类型信息禁用ruby 2.0.0 YAML的后缀?

我刚刚升级到ruby 2.0.0而且我遇到了YAML问题。我读取 - 更新 - 写一个以前看起来像这样的yaml文件

test:
  test2:
    somevar: hello

当我将它提供给ruby 200时,它显示为OK但是写道:

test: !ruby/object:Hash
  test2: !ruby/object:Hash
    somevar: hello

当我重新运行程序时,YAML.load什么都不读。

myH = YAML.load_file( YAML_FPATH )
puts "Yaml as Hash:" + myH.inspect
>> Yaml as Hash: {}

奇怪的是,如果我将文件的“test:!ruby / object:Hash”版本传递给ruby 1.8.7,它会读取后缀文件OK并写入一个非后缀文件。

1 个答案:

答案 0 :(得分:0)

发现问题:我修改了hash.to_yaml,以便对密钥进行排序。由于我的代码基于hash.to_yaml 1.8.7,我需要根据hash.to_yaml 2.0.0修改它。