Spec-Zone.ru › Elixir 1.16

Source Config.Reader

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

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

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

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

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

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

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

Вы также можете передать список ключевых слов параметров в читатель, где :path является обязательным ключом:

config_providers: [
  {Config.Reader,
   path: "/etc/config.exs",
   env: :prod,
   imports: :disabled}
]

Помните, что Mix по умолчанию уже загружает config/runtime.exs. Для получения дополнительных примеров и сценариев см. модуль Config.Provider.

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

Функции

eval!(file, contents, opts \\ [])

Оценивает конфигурацию contents для данного file.

merge(config1, config2)

Объединяет две конфигурации.

read!(file, opts \\ [])

Читает файл конфигурации.

read_imports!(file, opts \\ [])

Читает указанный файл конфигурации и возвращает конфигурацию с его импортами.

Функции

eval!(file, contents, opts \\ [])Source

@spec eval!(Path.t(), binary(), keyword()) :: keyword()

Оценивает конфигурацию contents для данного file.

Принимает те же параметры, что и read!/2.

merge(config1, config2)Source

@spec 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, opts \\ [])Source

@spec read!(
  Path.t(),
  keyword()
) :: keyword()

Читает файл конфигурации.

Параметры

  • :imports - список уже импортированных путей или :disabled для отключения импортов

  • :env - среда, в которой выполняется файл конфигурации. Смотрите Config.config_env/0 для примера использования

  • :target - цель, на которой выполняется файл конфигурации. Смотрите Config.config_target/0 для примера использования

read_imports!(file, opts \\ [])Source

@spec read_imports!(
  Path.t(),
  keyword()
) :: {keyword(), [Path.t()]}

Читает указанный файл конфигурации и возвращает конфигурацию с его импортами.

Принимает те же параметры, что и read!/2. Хотя обратите внимание, что :imports параметр не может быть отключён в read_imports!/2.

Скачать версию ePub

Создано с помощью ExDoc (v0.32.2) для языка программирования Elixir

© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.16.3/Config.Reader.html

Spec-Zone.ru

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