请教大家:
测试代码如下:
require 'yaml' a = <<-YAML --- - !ruby/object:Hash a: 1 b: 2 YAML YAML.load a
Ruby 1.8 的结果: [{"a"=>1, "b"=>2}] Ruby 1.9 的结果:[{}]
[{"a"=>1, "b"=>2}]
[{}]
Bug or Feature? 谢谢
那你还想怎样...
#1 楼 @luikore 当然想要得到 1.8 的结果咯 明明这个才 make sense
#3 楼 @bhuztez 没有啊 大家都默认$SAFE = 0啊
$SAFE = 0
#5 楼 @bhuztez 您这是哪听来的宣传。。
#6 楼 @iBachue
是你少了个 !
!
require 'yaml' a = <<-YAML --- - !!ruby/object:Hash a: 1 b: 2 YAML YAML.load a
#8 楼 @bhuztez 咦 这样啊 学习了 谢谢啊
#9 楼 @iBachue 那这算 bug 还是 feature? 我也碰到类似的问题了。
#10 楼 @betterthornbird 是 bug 还是 feature 大概要 Ruby core team 去讨论了吧。你有什么问题呢?可以按照上述的去修改,或者干脆去掉这个 tag,本来就可以省略。
#11 楼 @iBachue 我也发现解析的结果不一样了。我的解析源是个很大的文件,1.9.3 和 1.8.7 的解析结果不同导致测试挂掉了,Google && Stackover Flow 上面没有找到很好的类似例子和问题提及这个 Tag 事情以及 YAML 在 ruby 升级之后的变化,我目前发现的是将!变成 !! 之后结果还是有差异,还需要一些时间来研究。另外,谢谢建议,后面我移步到另外讨论话题上去吧。