Я довольно новичок в 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
Есть идеи?