Psych to_yaml选项的文档?

时间:2012-03-18 14:53:50

标签: ruby yaml psych

Ruby 1.9.3默认使用Psych进行YAML。虽然the ruby-doc documentation for it 完全缺乏,但我能够找到一条外部文档,暗示支持indentation选项。这在测试中证实了:

irb(main):001:0> RUBY_VERSION
#=> "1.9.3"
irb(main):002:0> require 'yaml'
#=> true
irb(main):003:0> [[[1]]].to_yaml
#=> "---\n- - - 1\n"
irb(main):009:0> [[[1]]].to_yaml indentation:9
#=> "---\n-        -        - 1\n"

可能支持更多选项。具体来说,我想知道如何更改换行宽度或完全禁用它。

有哪些可用选项?

2 个答案:

答案 0 :(得分:41)

ruby-1.9.3-p125/ext/psych/emitter.c的内心深处我找到了三个选项:

  • indentation - 级别必须小于10且大于1.
  • line_width - 设置首选线宽。
  • canonical - 将输出样式设置为规范,或不设置(真/假)。

他们工作了!

答案 1 :(得分:19)

如果要禁用换行,请使用以下选项:

line_width: -1