= Settingslogic
Settingslogic is a simple configuration / settings solution that uses an ERB enabled YAML file. It has been great for my apps, maybe you will enjoy it too.
So here is my question to you.....is Settingslogic a great settings solution or the greatest?
== Helpful links
* Documentation: http://rdoc.info/projects/binarylogic/settingslogic
* Repository: http://github.com/binarylogic/settingslogic/tree/master
* Issues: http://github.com/binarylogic/settingslogic/issues
== Install and use
Install from rubyforge:
sudo gem install settingslogic
Install from github:
sudo gem install binarylogic-settingslogic
Or as a plugin
script/plugin install git://github.com/binarylogic/settingslogic.git
== 1. Define your constant
Instead of defining a Settings constant for you, that task is left to you. Simply create a class in your application that looks like:
class Settings < Settingslogic
source "#{Rails.root}/config/application.yml"
namespace Rails.env
end
Name it Settings, name it Config, name it whatever you want. Add as many or as few as you like. A good place to put this file in a rails app is models/settings.rb
I felt adding a settings file in your app was more straightforward, less tricky, and more flexible.
== 2. Create your settings
Notice above we specified an absolute path to our settings file called "application.yml". This is just a typical YAML file. Also notice above that we specified a namespace for our environment. This allows us to namespace our configuration depending on our environment:
# app/config/application.yml
defaults: &defaults
cool:
saweet: nested settings
neat_setting: 24
awesome_setting: <%= "Did you know 5 + 5 = " + (5 + 5) + "?" %>
development:
<<: *defaults
neat_setting: 800
test:
<<: *defaults
production:
<<: *defaults
== Access your settings
>> Rails.env.development?
=> true
>> Settings.cool
=> "#"
>> Settings.cool.saweet
=> "nested settings"
>> Settings.neat_setting
=> 800
>> Settings.awesome_setting
=> "Did you know 5 + 5 = 10?"
Copyright (c) 2008 {Ben Johnson}[http://github.com/binarylogic] of {Binary Logic}[http://www.binarylogic.com], released under the MIT license