Ruby yaml 深度合并



我对Ruby相当陌生,我继承了一些代码,这些代码对一些YAML进行了"深度合并"。这是相关部分:-

class ::Hash
    def deep_merge(second)
        merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
        self.merge(second.to_h, &merger)
    end
end

我发现相当不可读的TBH。当我通过以下 YAML 时,它会倒下:-

- {key: nginx.ingress.kubernetes.io/auth-type, value: basic}
- {key: nginx.ingress.kubernetes.io/auth-secret, value: basic-auth}
- {key: nginx.ingress.kubernetes.io/auth-realm, value: 'Authentication Required.'}

"-"在 yaml 输入中都缩进了,但代码格式在这里弄乱了。

这是我尝试合并的 YAML 的精简版本(也失败了)

service:
  container:
    port: 3000

有什么想法吗?

好的,我发现了问题。我忘了向 YAML 添加标签(注释:)我一穿上它,它又开始工作了。我应该删除这个问题吗?

最新更新