ruby-on-rails - 同步两个 YAML 文件

标签 ruby-on-rails ruby yaml

有什么插件可以同步两个 YAML 文件吗?例如 file1 有

en:
   key1: "Value1"
   key2: "Value2"
es:
   key1: "EsValue1"

同步后需要在第二个文件中添加 key2: "Value2"不打乱次序和第二个文件中的 key1。

最佳答案

我不确定这是否会保持您想要的顺序,但如果您使用 Ruby 1.9,则很有可能因为它使用的是排序的哈希。您可以使用 YAML.load_file 将 YAML 文件的内容读入哈希,然后执行如下操作:

merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
es.merge(en, &merger)

然后再次将es hash转储到YAML文件中。

此处建议了递归合并的解决方案:http://www.ruby-forum.com/topic/142809#635081

关于ruby-on-rails - 同步两个 YAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470648/

相关文章:

ruby-on-rails - ruby rails : pluralize for other languages

mysql - 使用 ROR 应用程序设置 mysql 数据库时出现 ArgumentError

python-2.7 - PyYAML - 列表的顺序是否保留?

json - Swagger UI 2.1卡住 "fetching resource list"

ruby-on-rails - Rails Date#strptime 在 200 年之前错误地解析日期

ruby-on-rails - 是否可以连接到 Linux 上的 MS Access DB?

ruby-on-rails - simple_form 发送参数

ruby-on-rails - 如何将 rails 应用程序设置为 DDP 服务器以向 meteor 应用程序提供集合

ruby-on-rails - 什么 ruby​​ 客户端对 rabbitmq 最稳定?

Ruby - 转义一个数字前导变量名