我正在寻找一种方法来发出 YAML 文件,避免使用别名(主要是为了简化人类可读性)。我认为扩展 Psych::Visitors::Emitter
或
Psych::Visitors::Visitor
是要走的路,但我实际上找不到 Ruby 在哪里决定是完全转储 anchor ,还是用别名引用它。
我什至不介意重复使用 anchor (使用它们的 &...... 引用),我只需要将别名扩展到完整结构。
我知道过去有人问过类似的问题,但是:
- Ruby YAML write without aliases仍未得到答复
- Is it possible to emit valid YAML with anchors / references disabled using Ruby or Python?给出了 Python 的答案,但没有给出 Ruby 的答案
最佳答案
我使用的一种简单(hacky)方法是将 yaml 转换为 json。然后将其转换回 YAML。新的 YAML 不包含别名/ anchor 。
require 'json'
jsonObj = oldYaml.to_json
newYaml = YAML.load(jsonObj)
print newYaml.to_yaml
关于ruby - 如何在 Ruby 扩展别名中发出 YAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508364/