Config.Reader
API для чтения конфигурационных файлов, определённых с помощью Config.
В качестве провайдера
Config.Reader также может использоваться как Config.Provider. При использовании в качестве провайдера, он ожидает один аргумент: путь к конфигурации (как описано в Config.Provider.config_path/0) для чтения и загрузки конфигурации во время запуска системы.
Краткое описание
Функции
- merge(config1, config2)
Объединяет две конфигурации.
- read!(file, imported_paths \\ [])
Читает конфигурационный файл.
- read_imports!(file, imported_paths \\ [])
Читает заданный конфигурационный файл вместе с его импортами.
Функции
merge(config1, config2)
Спецификации
merge(keyword(), keyword()) :: keyword()
Объединяет две конфигурации.
Конфигурации объединяются, при этом значения во второй конфигурации имеют больший приоритет, чем в первой, в случае конфликтов. Если оба значения являются списками ключевых слов, они объединяются рекурсивно.
Примеры
iex> Config.Reader.merge([app: [k: :v1]], [app: [k: :v2]]) [app: [k: :v2]] iex> Config.Reader.merge([app: [k: [v1: 1, v2: 2]]], [app: [k: [v2: :a, v3: :b]]]) [app: [k: [v1: 1, v2: :a, v3: :b]]] iex> Config.Reader.merge([app1: []], [app2: []]) [app1: [], app2: []]
read!(file, imported_paths \\ [])
Спецификации
read!(Path.t(), [Path.t()]) :: keyword()
Читает конфигурационный файл.
То же самое, что и read_imports!/2, но возвращает только конфигурацию из данного файла, без возвращаемых импортированных путей.
Существует для удобства. Например, вы можете вызвать его внутри вашего mix.exs для чтения некоторых внешних данных, которые вы решили перенести в конфигурационный файл:
releases: Config.Reader.read!("rel/releases.exs") read_imports!(file, imported_paths \\ [])
Спецификации
read_imports!(Path.t(), [Path.t()]) :: {keyword(), [Path.t()]} Читает заданный конфигурационный файл вместе с его импортами.
Принимает список imported_paths , которые должны вызывать ошибку, если их попытаются импортировать повторно (чтобы избежать рекурсивных импортов).
Возвращает кортеж с конфигурацией и импортированными путями.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.9.4/Config.Reader.html