Spec-Zone.ru › Elixir 1.10

Config.Reader

API для чтения конфигурационных файлов, определённых с помощью Config.

В качестве поставщика

Config.Reader также может использоваться как Config.Provider. При использовании в качестве поставщика, он ожидает единственный аргумент: путь к конфигурации (как описано в Config.Provider.config_path/0) для файла, который будет прочитан и загружен во время загрузки системы.

Например, если вы ожидаете, что целевая система будет иметь конфигурационный файл в абсолютном пути, вы можете настроить ваш mix release как:

config_providers: [{Config.Reader, "/etc/config.exs"}]

Или если вы хотите прочитать пользовательский путь внутри релиза:

config_provider: [{Config.Reader, {:system, "RELEASE_ROOT", "/config.exs"}}]

По умолчанию, Mix релизы поддерживают конфигурацию во время выполнения с помощью config/releases.exs. Если config/releases.exs существует в вашем приложении, он автоматически копируется внутри релиза и автоматически настраивается как поставщик конфигурации.

Краткое описание

Функции

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.10.4/Config.Reader.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API