CoConfig

Circle CI

This is a simple gem to load configuration files on rails.

Installation

Add this line to your application's Gemfile:

gem 'co_config'

And then execute:

$ bundle

Or install it yourself as:

$ gem install co_config

Usage

Create a configuration.rb file on your rails application's config folder. This file will indicate which files are loaded.

# To load the test.yml file into the CoConfig::TEST hash
load 'test' 

# To validate the configuration you could use
load 'test2' { |c| c.token.present? } 
# or
load 'test3' { |c| raise if token.empty? }

YAML files must have a root key called like the current Rails.env. A key called defaults can be used to specify defaults for undefined environments.

# test.yml
---

development:
   value: 1
# test2.yml
---

defaults:
   token: 'MYAWESOMETOKEN'

To read your configuration you can access the hash (with indifferent access) at CoConfig::CONFIG_NAME_UPPERCASE

To use on your engine/gem

If you want to load configuration from a different path (e.g. your engine's directory), you can do this:

# lib/my_engine/railtie.rb
require 'rails/railtie'
module MyEngine
  class Railtie < ::Rails::Railtie
    config.before_configuration do
      CoConfig.load(MyEngine::Engine.root.join('config'))
    end
  end
end

# lib/my_engine.rb
require 'my_engine/railtie'

module MyEngine
  class Engine < ::Rails::Engine
  end
end

It will load my_engine/config/configuration.rb, and in there, load method calls will include configuration files in the same directory.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/comparaonline/co_config.

License

The gem is available as open source under the terms of the MIT License.