ruby - 如何在 Ruby 扩展别名中发出 YAML

标签 ruby yaml alias psych

我正在寻找一种方法来发出 YAML 文件,避免使用别名(主要是为了简化人类可读性)。我认为扩展 Psych::Visitors::EmitterPsych::Visitors::Visitor 是要走的路,但我实际上找不到 Ruby 在哪里决定是完全转储 anchor ,还是用别名引用它。

我什至不介意重复使用 anchor (使用它们的 &...... 引用),我只需要将别名扩展到完整结构。

我知道过去有人问过类似的问题,但是:

最佳答案

我使用的一种简单(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/

相关文章:

scala 类型标签和类型别名

ruby-on-rails - 你能覆盖 Ruby 中的别名方法吗?

ruby-on-rails - $ bundle exec rake db :reset command raising couldn't drop db/development. sqlite3

ruby - Ruby 中是否可以绕过单例方法调用?

ruby-on-rails - 如何在 Rails 中的渲染 Action 中传递参数

java - 将 Yaml 中的列表映射到 Spring Boot 中的对象列表

yaml - hyperledger configtxgen错误

docker - 有没有办法将 docker-compose 中的扩展字段与 docker secret 一起使用?

linux - 如何在引号内使用 sed 中的引号?

ruby-on-rails - 使用 oAuth2 gem 和 facebook 的 OpenSSL 问题