【发布时间】:2014-02-10 15:28:04
【问题描述】:
我正在用 Ruby 修改 YAML 文件。在我写回修改后的 YAML 后,我看到文件顶部添加了 ---。这是如何添加的以及如何摆脱它?
【问题讨论】:
-
显示一些代码可能会有所帮助
我正在用 Ruby 修改 YAML 文件。在我写回修改后的 YAML 后,我看到文件顶部添加了 ---。这是如何添加的以及如何摆脱它?
【问题讨论】:
YAML spec 说:
YAML 使用三个破折号(“---”)将指令与文档内容分开。如果不存在指令,这也用于指示文档的开始。
例子:
# Ranking of 1998 home runs
---
- Mark McGwire
- Sammy Sosa
- Ken Griffey
# Team ranking
---
- Chicago Cubs
- St Louis Cardinals
因此,如果每个 YAML 文件有多个文档,则必须用三个破折号分隔它们。如果您只有一个文档,则可以删除/省略它(如果缺少三个破折号,我在 ruby 中从未遇到过 YAML 问题)。在对对象进行 yaml 化时添加它的原因是,我猜,转储程序是“按规范”编写的,并不关心实现这样的“快捷方式”(当它只有一个文档时省略三个破折号)。
【讨论】:
yaml.gsub("---\n", '')。
hash.to_yaml.gsub(...)