加载并保存YAML文件,而不会丢失Ruby中的引号或注释

时间:2016-08-27 15:16:47

标签: ruby

我需要以编程方式编辑Ruby中的YAML文件,我还需要保留封闭的引号字符。能够保留评论也是一种奖励。

也就是说如果我有一个文件:

---
foo: 'bar'

---
foo: "bar"

我的脚本不得将其写回:

---
foo: bar

如上所述,理想情况下我也需要保留评论。

没有沿着将整个文件视为文本流的路径,有没有方便的方法来解决这些问题中的一个或两个?

1 个答案:

答案 0 :(得分:2)

在编写本文时,似乎无法在Ruby中实现,除非您准备编写自己的YAML解析器。我调查了其他语言,包括Perl和Python,发现有一个名为Ruamel的Python库可以做到这一点 - 或者更确切地说,它可以在修复所有错误时执行此操作!所以我用Python重写了我的应用程序。另请参阅此答案here