config v0.1.0 Config

Provides convenient way to load application configuration from config files and environment variables.

Quickstart example:

defmodule MyApplication do
  use Application
  use Config

  Config.config :my_app do
    option timeout, int, ["-t", "--timeout", "MY_TIMEOUT", default: 100]
    category connection do
      type   :map
      option host, string, [h, host, MY_HOST, default: "localhost"]
    end
  end

  def start(_type, _args) do
    Config.load(:my_app)
    Application.get_env(:my_app, :timeout)    # -> 100
    Application.get_env(:my_app, :connection) # -> %{host: "localhost"}
  end
end

Options, available inside config block:

Summary

Functions

Loads configuration for specified application

Loads configuration for specified application or raises error

Macros

Specifies configuration that will be used in Config.load/2 function

Types

env :: map | keyword

Functions

load(module, app)

Specs

load(Config.Configuration.t, atom) ::
  {:ok, keyword | map} |
  {:error, errors}
load(Config.Configuration.t, atom) ::
  {:ok, env} |
  no_return

Loads configuration for specified application.

Returns {:ok, config} tuple with loaded configuration on success or {:error, list} with list of errors.

load!(module, app)

Loads configuration for specified application or raises error.

Bang version of load/2.

Macros

config(app, opts \\ [])

Specifies configuration that will be used in Config.load/2 function.

See Config.Configuration for all options, available inside config block.