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