アトトックラボ

2011年12月30日

[Rails]settingslogicでアプリケーションの設定を管理

Posted by Yoichi Kurusaki

Railsでアプリケーションの設定を管理するsettingslogicを使ってみる。

1. Gemfileに追加

Gemfileにsettingslogicを追加する。

gem 'settingslogic'

2. settingslogicをインストール

bundle update
$ bundle update
Fetching source index for http://rubygems.org/
Using rake (0.9.2.2) 
Installing multi_json (1.0.4) 
Using activesupport (3.1.1) 
Using builder (3.0.0) 
Using i18n (0.6.0) 
Using activemodel (3.1.1) 
Using erubis (2.7.0) 
Using rack (1.3.5) 
Using rack-cache (1.1) 
Using rack-mount (0.8.3) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.0.3) 
Using actionpack (3.1.1) 
Using mime-types (1.17.2) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.3.0) 
Using actionmailer (3.1.1) 
Using arel (2.2.1) 
Using tzinfo (0.3.31) 
Using activerecord (3.1.1) 
Using activeresource (3.1.1) 
Installing ansi (1.4.1) 
Using bcrypt-ruby (3.0.1) 
Using bundler (1.0.12) 
Using coffee-script-source (1.1.3) 
Installing execjs (1.2.11) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Installing json (1.6.3) with native extensions 
Using rdoc (3.11) 
Using thor (0.14.6) 
Using railties (3.1.1) 
Using coffee-rails (3.1.1) 
Using orm_adapter (0.0.5) 
Installing warden (1.1.0) 
Installing devise (1.5.2) 
Installing jquery-rails (1.0.19) 
Using mygengo (1.4) 
Using rails (3.1.1) 
Installing sass (3.1.11) 
Installing sass-rails (3.1.5) 
Installing settingslogic (2.0.6) 
Installing sqlite3 (1.3.5) with native extensions 
Using turn (0.8.3) 
Installing uglifier (1.1.0) 
Your bundle is updated! Use `bundle show [gemname]` to see where a bundled gem is installed.

3. アプリケーションの設定ファイルを作成

今回は、config/appinfo.yml に作成した。

config/appinfo.yml

hogehoge:
  hoge1: 'ABCDE'     
  hoge2: true 

4. アプリケーションの設定を管理するクラスを作成

Settingslogicクラスのサブクラスを作成する。

app_info.rb

class AppInfo < Settingslogic
  source "#{Rails.root}/config/appinfo.yml"
end

5. 実行してみる。

設定内容を出力してみる。

    p AppInfo.hogehoge.hoge1
    p AppInfo.hogehoge.hoge2
実行結果
"ABCDE"
true