The simplest yaml to
ENV config loader.
Envyable takes a config YAML file and loads the entries into your
ENV hash. Keep your development environment clean of application specific configuration.
It is only recommended that you use Envyable in your development environment. There are better ways to set environment variables in production.
Add this to your application's
development_dependencies: envyable: github: philnash/envyable.cr
You will need a YAML file which contains your application config. I like to use
config/env.yml. Put your default settings in the root and then override them on an environment by environment basis.
Example YAML file
The following YAML file sets the
API_CLIENT_ID in all environments to
"development-id" then overrides it in the test environment to
API_CLIENT_ID: development-id test: API_CLIENT_ID: test-id
Load the configuration
To load the configuration you just need to require the library and then call
require "envyable" Envyable.load("path/to/yml", "development")
All config is loaded as a string.
By default the development environment will be loaded. If you have a config file called
env.yml in the
config directory and you wanted to load the development environment, then you would include the following:
require "envyable" Envyable.load("./config/env.yml")
It is not recommended that you check the YAML file in to version control. I like to check in a
env.yml.example file that shows the required keys, but does not include any credentials.
- Fork it ( https://github.com/philnash/envyable.cr/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- Phil Nash - creator, maintainer