Padrinoでの設定情報の管理法
Padrinoで設定情報を管理する良さ気な方法がないか調べた。
何個かPadrinoを使ったアプリのソースを見てみたけど、@udzuraのhaircutで実装されたやり方が一番しっくりきたのでメモっておく。
設定ファイル(YAML)の作成
config/
配下に設定ファイル(YAML)を配置する。
ここではファイル名をconfig/config.yaml
とする。
:development: :hoge: a :test: :hoge: b :production: :hoge: c
設定ファイル読み込みクラスの作成
設定ファイルを読み込むConfigクラスをlib/config.rb
として作成する。
module PadrinoApp class Config CONF = YAML.load(open(Padrino.root("/config/config.yml").read) def self.[](key) CONF[key] end end end
ConfigクラスのPadrino起動時の読み込み
config/boot.rb
内に以下の記述を追加。
Padrino.before_load do # do something... require 'config' end
これで自動的にlib/config.rb
が読み込まれる。
Controller/ViewでのConfigクラスの呼び出し
PadrinoApp::Config[:key]
でControllerからでもViewからでもConfig情報を読み出せる。
PadrinoApp::App.controllers :test do get :index do puts PadrinoApp::Config[:development][:hoge] # => a end end