EasyConfig
A simple gem to store custom app settings the easiest way. It can be used in any Ruby or Rails application.
Installation
Add this line to your application's Gemfile:
gem 'easy_configs'
then execute:
$ bundle install
or install it yourself as:
$ gem install easy_configs
Usage
EasyConfig loads a YAML file (with eventual ERB tags, so you can use ENV
variables).
For example, given a YAML file with a bunch of keys:
foo:
bar: 1
env: <%= ENV['USER'] %>
baz:
nested: 2
Here's how to use it:
# Load yaml file
MyConfig = EasyConfig.load_yaml 'path_to_yaml.yml'
# Retrieve keys
MyConfig. # => 1
MyConfig.env # => YOUR_USERNAME
# Retuns a nested object (EasyConfig::DeepStruct is a modified version of Ruby's OpenStruct)
MyConfig.baz # => <#EasyConfig::DeepStruct>
# Access a nested key
MyConfig.baz.nested # => 2
# Returns an Hash
MyConfig.to_h # => {foo: {bar: 1, env: ..., baz: {nested: 2} }}
Rails support
EasyConfig has built-in support for Rails. It provides a generator to create an initializer and a sample config:
- run the generator
rails generate easy_config:install
- edit the sample configuration in
config/easy_config.yml
You might want to modify config/initializers/easy_config.rb
to choose another name for the object that should store the settings.
(default name is EConfig
), or add additional logic. No problem, this is just a decent default for the lazy.
Contributing
- Fork it!
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Testing
- clone this repo
- run
bundle install
- run
rake spec
License
Copyright (c) 2013 Andrea Pavoni http://andreapavoni.com