Settingslogic插件
Settingslogic是binarylogic系列插件之一,作者还写了其它一些小插件,如:authlogic,searchlogic, memorylogic等。使用Settingslogic插件可以用XML文件来对程序进行一些配置。基于Ruby,适用于任何Ruby及其框架开发的程序,当然包括Rails。使用起来非常简单,简要总结一下:
安装:
修改Gemfile,添加
gem 'settingslogic'
执行bundle install,会自动下载安装最新版。
使用:
1. 建一个rb文件,内容如下:
class Settings < Settingslogic
  source "#{Rails.root}/config/settings.yml"
  namespace Rails.env
end
文件名随意取,可以保存在任何地方,一般我们放在app/models/settings.rb
2. 建配置文件:
# app/config/settings.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
3. 获取配置信息
>> Rails.env => "development" >> Settings.cool => "#<Settingslogic::Settings ... >" >> Settings.cool.saweet => "nested settings" >> Settings.neat_setting => 800 >> Settings.awesome_setting => "Did you know 5 + 5 = 10?"
如果你讨厌Settingslogic,想自己写,也非常简单。
参照:Railscasts
# config/initializers/load_config.rb
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]
# application.rb
if APP_CONFIG['perform_authentication']
  # Do stuff
end