envyable
Version, currently 1.0.12 versions
- 1.0.1latestSep 4, 2018
- 1.0.0not indexedMay 24, 2021
github.com/philnash/envyable.cr
The simplest YAML to ENV config loader in Crystal. Use YAML files to manage your local environment variables.
7 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
envyable:
github: philnash/envyable.cr
version: ~> 1.0.1Then run:
shards installshard.yml
- Crystal
0.26.1- License
- MIT
- Author
- Phil Nash <philnash@gmail.com>
Dependencies
This version declares no dependencies.
README
# Envyable
The simplest yaml to `ENV` config loader.
[](https://travis-ci.org/philnash/envyable.cr)
Envyable takes a config YAML file and loads the entries into your `ENV` hash. Keep your development environment clean of application specific configuration.
## Installation
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 `shard.yml`:
```yaml
development_dependencies:
envyable:
github: philnash/envyable.cr
```
## Usage
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 `"test-id"`.
```yaml
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 `load`.
```crystal
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:
```crystal
require "envyable"
Envyable.load("./config/env.yml")
```
## Version control
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.
## Contributing
1. Fork it ( https://github.com/philnash/envyable.cr/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request
## Contributors
- [Phil Nash](https://github.com/philnash) - creator, maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.0.1- Tagged
- Sep 4, 2018
- Commit
e7b7cc98cb62- Crystal
0.26.1- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/philnash/envyable.cr
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 14, 2026
- Synced
- Aug 14, 2026
- Versions
- 2