App Config
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
tasks
test
META.yml
MIT-LICENSE
README
Rakefile
init.rb
install.rb

README

Copyright (c) 2006 Daniel Owsianski  (daniel-at-jarmark-d0t-org)
Changes by Nate Walker 2008 (kiwinewt-at-gmail-d0t-com)

Rails framework default configuration way is, as we all know,
flexible and simple at the same time. Troubles begins when Your
application starts to grow - some form of app specific configuration
is then required to keep all as DRY as possible.

AppConfig plugin provides a convenient way for configuration
application wide settings. Extra custom files in config/ or other
unusual configuration hacks are no longer needed. AppConfig extends
Rails configuration process in a way that allows to setup application
specific options within default configuration block.

== Installation:
You can install directly from the repository:

  $ script/plugin install git://github.com/kiwinewt/app_config.git

Note: This plugin was originally obtained from:
	$ http://svn.jarmark.org/rails/app_config

*NOTE*: because AppConfig modifies Rails configuration internals,
must be included *before* Rails::Initializer#run.
If You are using Rails v1.1+ this step is taken *automatically* during
installation. Otherwise add the following line to conf/environment.rb file:
	require 'plugins/app_config/lib/configuration'
(somewhere between line 'require File.join(File.dirname(__FILE__), 'boot')
and 'Rails::Initializer.run')

== Usage
You can specify app-wide settings in configuration file(s)
using 'app_config' prefix e.g. environment.rb:
	Rails::Initializer.run do |config|
	...
	   # --- My killer-app specific settings:
	   config.app_config.my_key = 'my value'
	   config.app_config.boot_time = Time.now
	   config.app_config.default_mail_subject = '[appconfig] '
	   config.app_config.my_hash = {:a=>1, :b=>2}
	...

but also in e.g. environment/development.rb
	...
	config.app_config.default_message = "I'm now in development mode..."
	...

Access to previously configured settings from within application
code is also dead easy:

	AppConfig.my_key
	AppConfig[:my_key]
	AppConfig['my_key']
	AppConfig.param('my_key')
	AppConfig.param(:my_key)
	AppConfig.param('my_key', 'value if my_key is nil')
	AppConfig.param(:my_key)do
	 ... #executed when my_key is nil
	end
	
 safe parameter testing
   AppConfig.has_param?(:mail_from_address)
   AppConfig.has_param?('mail_from_address')

Happy (re)configurations!

Author:: Daniel Owsianski, (daniel-at-jarmark-d0t-org)
Author:: Nate Walker 2008 (kiwinewt-at-gmail-d0t-com)
Version:: 0.1
Home page:: http://github.com/kiwinewt/app_config/tree
License::  Copyright (c) 2006 Daniel Owsiañski.
           Released under MIT-LICENCE (included).