MitinPavel/settingslogic

A simple and straightforward settings solution that uses an ERB enabled YAML file and a singleton design pattern.

★ 1Forks 1RubyGitHub ↗Compare

Project website ↗

README

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?

* Documentation: rdoc.info/projects/binarylogic/settingslogic * Repository: github.com/binarylogic/settingslogic/tree/master

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

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.

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
>> Rails.env.development?
=> true

>> Settings.cool
=> "#<Settingslogic::Settings ... >"

>> Settings.cool.saweet
=> "nested settings"

>> Settings.neat_setting
=> 800

>> Settings.awesome_setting
=> "Did you know 5 + 5 = 10?"

Copyright © 2008 Ben Johnson of Binary Logic, released under the MIT license

Contributors

binarylogicMitinPavelmtyaka

Issues