gpt4 book ai didi

ruby - 如何获取适用于 ruby​​ 1.9.1 的 to_yaml 方法的格式化选项?

转载 作者:数据小太阳 更新时间:2023-10-29 07:08:00 27 4
gpt4 key购买 nike

根据 YAML 文档,可以传递 hash of options.to_yaml 方法。

目前,当我按照文档中的建议传递选项时,它不起作用,哈希被忽略。

irb(main):001:0> require 'yaml'
=> true
irb(main):002:0> user = { "1" => { "name" => "john", "age" => 44 } }
user.to_yaml
=> "--- \n\"1\": \n name: john\n age: 44\n"

现在,传递一些选项:

irb(main):014:0> user.to_yaml( :Indent => 4, :UseHeader => true, :UseVersion => true )
=> "--- \n\"1\": \n name: john\n age: 44\n"
irb(main):015:0> user.to_yaml( :Separator => "\n" )
=> "--- \n\"1\": \n name: john\n age: 44\n"
irb(main):016:0> user.to_yaml( :separator => "\n" )
=> "--- \n\"1\": \n name: john\n age: 44\n"
irb(main):017:0> RUBY_VERSION
=> "1.9.1"

如您所见,传递选项不起作用。只有默认值:

YAML::DEFAULTS
=> {:Indent=>2, :UseHeader=>false, :UseVersion=>false, :Version=>"1.0", :SortKeys=>false, :AnchorFormat=>"id%03d", :ExplicitTypes=>false, :WidthType=>"absolute", :BestWidth=>80, :UseBlock=>false, :UseFold=>false, :Encoding=>:None}

这是一个已知错误吗?或者它目前适用于任何使用 Ruby 1.9.1 的人?

最佳答案

在不久的将来,我为此深入研究了 C 源代码。我发帖只是为了验证评论中已经说过的话。

基本上,做不到。在访问 YAML 编写器之前,Syck 选项在此过程中的某个地方丢失了。

您可以拥有的最好的是to_yaml_style。有时。

这对于 1.8 和 1.9 是一样的。

关于ruby - 如何获取适用于 ruby​​ 1.9.1 的 to_yaml 方法的格式化选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156762/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com