Я имею дело с приложением, которое читает файл конфигурации, config.yml
, из текущего каталога. Этот файл конфигурации содержит как секретную информацию (ключи API), которая не должна быть возвращена в систему контроля версий, так и другую информацию о конфигурации, которая может быть.
То, что я хотел бы сделать, это разделить этот файл конфигурации на две части, чтобы получить config.secret.yml
и config.public.yml
. config.secret.yml
будет игнорироваться системой контроля версий , а config.public.yml
может быть зарегистрирован.
Затем я хочу как-то создать файл-подобный объект config.yml
который эффективно "символизирует" объединенное содержимое config.secret.yml
и config.public.yml
, чтобы это произошло:
> cat config.secret.yml
---
:api_key: 2712ab206a8003e44b2a84c467fc1b58
>
> cat config.public.yml
:site_id: 123
>
> cat config.yml
---
:api_key: 2712ab206a8003e44b2a84c467fc1b58
:site_id: 123
Я знаю, что сами символические ссылки не поддерживают такого рода поведение, и что обычно нужно, чтобы и "по умолчанию", и "локальные" настройки считывались со стороны приложения, но давайте работать в предположении, что только один файл конфигурации может быть прочитанным
Файл читается методом Ruby File.read()
и анализируется YAML.load()
если это предоставляет какую-либо возможность для хитрых хаков.