Environmentally-friendly application config for Ruby.
Prius helps you guarantee that your environment variables are:
- Present - an exception is raised if an environment variable is missing, so you can hear about it as soon as your app boots.
- Valid - an environment variable can be coerced to a desired type (integer, boolean, string, or date), and an exception will be raised if the value doesn't match the type.
$ gem install prius
# Load a required environment variable into the Prius registry: Prius.load(:github_token) # Use the environment variable: Prius.get(:github_token) # Load an optional environment variable: Prius.load(:might_be_here_or_not, required: false) # Load and alias an environment variable: Prius.load(:alias_name, env_var: "HORRENDOUS_SYSTEM_VAR_NAME") # Load and coerce an environment variable (or raise): Prius.load(:my_flag, type: :bool)
You probably want to
load all your environment variables as your app starts,
so you catch config issues at boot time.
Loading Environment Variables
Environment variables need to be loaded into the Prius registry before being used. Typically this is done in an initialiser.
If an environment variable can't be loaded, Prius will raise one of:
MissingValueErrorif the environment variable was expected to be set but couldn't be found.
TypeMismatchErrorif the environment variable wasn't of the expected type (see below).
Prius.load accepts the following options:
||Flag to require the environment variable to have been set.|
||Type to coerce the environment variable to. Allowed values are
||Name of the environment variable name (if different from the upcased
Reading Environment Variables
Once a variable has been loaded into the registry it can be read using:
If the environment variable hasn't been loaded, Prius will raise an
Test and development environments
To make running your app in test and development environments easier we recommend using Dotenv to automatically load a file of dummy config values.
GoCardless ♥ open source. If you do too, come join us.