こんにちは、鈴木です。
Rails ライブラリ紹介ということで、設定ファイルを扱うライブラリ Settingslogic をご紹介します。
- Settingslogic (https://github.com/binarylogic/settingslogic)
Settingslogic の導入
Gemfile に以下の内容を追加します。
1 |
gem 'settingslogic' |
bundle install します。
1 |
bundle install |
設定ファイルの作成
設定ファイルは YAML 形式で記述します。
保存場所はどこでも良いのですが、ここでは config/application.yml とします。
1 2 3 4 5 6 7 8 9 10 11 |
default: &default message: 'Hello' development: <<: *default test: <<: *default production: <<: *default |
default セクションにデフォルトの設定を記述しました。
ひとまず development, test, production は default の内容を引き継ぐだけとしました。
設定内容にアクセスするクラスの定義
次に、設定ファイルの内容にアクセスするためのクラスを定義します。(app/models/settings.rb)
1 2 3 4 |
class Settings < Settingslogic namespace Rails.env source Rails.root.join('config', 'application.yml') end |
設定内容へのアクセス
動作確認ということで、rails console で試してみましょう。
1 2 |
> Settings.message => "Hello" |
設定内容を取得することができました。
まとめ
環境によって異なる値を設定ファイルに持たせることは一般的に行なわれますが、設定ファイルの形式を決めて、読み込み処理を書いて、・・・を独自にやるのは意外と面倒です。
Settingslogic を使うと、面倒な部分が解消され、しかも単なる Hash よりも扱いやすいインタフェースで設定内容にアクセスすることができます。