RailsなどでWebアプリケーションを作成する際、環境に依存する値を扱う必要が生じた時は、
settingslogicというgemを使うと便利です。
このgemを使えば、設定ファイル用のyamlファイルをRubyから簡単に扱う事ができます。
Railsの場合、以下の手順でアプリケーションにsettingslogicを組み込む事が出来ます。
- Gemfileにsettingslogic追加
- yamlファイルを適当なファイル名でconfigディレクトリ配下に作成
- Settingslogicクラスを継承したクラスを定義
- アプリケーションにSettingslogicを使ったコードを記述
Gemfileにsettingslogic追加
Gemfileにsettingslogicを追加します。
1 | gem 'settingslogic' |
追加後は、bundle installを忘れずに。
1 | $ bundle install |
yamlファイルの作成
configディレクトリ配下に、application.ymlなど、好きな名前でyamlファイルを作成します。
1 | $ vi config/application.yml |
database.yml等と同様に、productionやdevelopmentなどの環境に応じて設定を分けることができます。
1 | production: |
Settingslogicクラスを継承したクラスを定義
Settingslogicクラスを継承したクラスを、適当な場所に定義します。
1 | $ vi lib/settings.rb |
sourceにファイル名、namespaceにproductionやdevelopmentなどの環境が指定されるようにしています。
1 | class Settings < Settingslogic |
アプリケーションにコードを記述
アプリケーション側からは、設定ファイルから読み込んだ値をこんな感じで使えます。
1 | require 'settings' |