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

который я нашел довольно нечитаемым ТБХ. Это падает, когда я передаю его следующим 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

Есть идеи?

-1
источник поделиться

Посмотрите другие вопросы по меткам или Задайте вопрос