Ruby Yaml глубокое слияние - PullRequest
0 голосов
/ 16 января 2019

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

0 голосов
/ 16 января 2019

ОК, я нашел проблему. Я забыл добавить ярлык в YAML (аннотации :), и как только я его надену, он снова начал работать. Должен ли я удалить вопрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...