Popularity
2.5
Declining
Activity
0.0
Stable
8
1
5

Monthly Downloads: 2
Programming language: Elixir
License: MIT License
Tags: Configuration    

figaro alternatives and similar packages

Based on the "Configuration" category.
Alternatively, view figaro alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of figaro or a related project?

Add another 'Configuration' Package

README

Figaro

Build Status Coverage Status

Port of @laserlemon's Figaro gem to Elixir. Please see original project for additional details and history. Documentation is lifted from @laserlemon's gem verbatim (where applicable) in an effort to provide full feature parity.

Getting Started

Add Figaro as a dependency in your mix.exs file.

defp deps do
  [{ :figaro, ">= 0.0.0" }]
end

You should also update your applications list to include Figaro:

def application do
  [applications: [:figaro]]
end

After you are done, run mix deps.get in your shell to fetch the dependencies.

Usage

Given the following configuration file:

# config/application.yml

foo: bar
baz: qux

You will have access to configuration values via Figaro.env:

iex> Figaro.env.foo
"bar"
iex> Figaro.env.baz
"qux"
iex> Figaro.env
%{foo: "bar", baz: "qux"}

Figaro also sets ENV with values defined in application.yml:

iex> System.get_env("FOO")
"bar"
iex> System.get_env("BAZ")
"qux"

Please note: ENV is a simple key/value store. All values will be converted to strings. Deeply nested configuration structures are not possible.

Environment-Specific Configuration

Oftentimes, local configuration values change depending on your environment. In such cases, you can add environment-specific values to your configuration file:

# config/application.yml

foo: foo
bar: bar

test:
  foo: sekret
  bar: noway

You can also nullify configuration values for a specific environment:

# config/application.yml

foo: foo
bar: bar

test:
  foo: ~

Assuming you are running from the test environment:

iex> System.get_env("FOO")
nil
iex> System.get_env("BAR")
"bar"

Please note: The environment names (test above) are derived from Mix.env. Any other keys defining nested configuration values will be ignored.