AmberBit Config
Provides simple global configuration for ruby applications using YAML files.
Installation:
With bundler:
1. Edit Gemfile, located in your application and add the following line:
gem 'amberbit-config'
2. Run bundle:
bundle install
3. Use rake to generate configuration files:
rake amberbit:config:setup
4. Make sure that ./config/app_config.yml stays in .gitignore
As a rails engine:
It will work without any other actions as a rails engine. It takes environment name from:
ENV['RAILS_ENV'] or ENV['RACK_ENV'] or ENV['APP_CONFIG_ENV']
AppConfig should be initialized before environment configuration. If you need to use it within ./config/application.rb then add after Bundler.require
require 'amberbit-config'
AmberbitConfig.initialize_within File.dirname(__FILE__)
Any ruby application
For any other app require and initialize AppConfig as above, just make sure that there’s an ENV variable. You can also specify files to load, i.e.:
require 'amberbit-config'
ENV['RACK_ENV'] = 'development'
AmberbitConfig.initialize 'config/app_config_default.yml', 'config/app_config.yml'
Tested with Ruby on Rails, Sinatra, and plain old ruby.
Usage:
Place your application configuration default values into ./config/app_config_default.yml:
default:
application:
name: SuperApp
url: http://localhost:3000/
test:
# overwrite application.url key only in test env
application:
url: http://testhost:3000/
And overwrite values you wish on per-installation basis in ./config/app_config.yml:
default:
application:
name: SuperApp specially for you
production:
application:
url: http://yoursuperhiperdomain.com
In your application Ruby code you can access the values in 2 following ways:
AppConfig["application"]["name"] #=> SuperApp specially for you
or
AppConfig.application.name #=> SuperApp specially for you
Keys are deep-merged, for example:
production env:
AppConfig.application.name #=> SuperApp specially for you
AppConfig.application.url #=> http://yoursuperhiperdomain.com
development env:
AppConfig.application.name #=> SuperApp specially for you
AppConfig.application.url #=> http://localhost:3000/
Copyright © 2008/2011 Wojciech Piekutowski, Hubert Łępicki, Piotr Tynecki released under the MIT license