Skip to content

Simple library to make it easier to work with environment variables in Elixir.

License

Notifications You must be signed in to change notification settings

manheim/env_helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EnvHelper

GitHub license Travis Hex.pm Coveralls Inline docs

Using system variables is good practice, and env helper helps you practice it. Documentation available online

Installation

The package can be installed from hex.pm:

  1. Add env_helper to your list of dependencies in mix.exs:
 def deps do
   [{:env_helper, "~> 0.2.0"}]
 end

Usage

General

Create a module and import EnvHelper, then use the system_env and app_env macros to to define functions for that module.

system_env

defmodule Settings do
  import EnvHelper
  system_env(:base_url, "localhost:9000")
end

This maps the method Settings.base_url to the system environment variable BASE_URL, or to the default value if the environment variable is not set.

Some settings might need to be integer values in your code, but will be strings when read from the environment helper. In such cases you can use the :string_to_integer flag:

system_env(:port, 9876, :string_to_integer)

Which will ensure that PORT environment variable will be interpreted as an integer.

app_env

In config/test.exs:

config :my_app, :port, 5678

In settings.ex:

defmodule Settings do
  import EnvHelper
  app_env(:port, [:my_app, :port], 1234)
end

Assuming that the config/dev.exs file does not define a :my_app, :port variable, in the test environment Settings.port is 5678 and in dev it will be 1234.

About

Simple library to make it easier to work with environment variables in Elixir.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages