読者です 読者をやめる 読者になる 読者になる

開発環境で.envに定義された環境変数を取得(Padrinoの場合)

SqaleHerokuといったPaaSサービスを利用していると環境変数.envというファイルに定義しておくと、アプリケーション側でそのファイルの内容を環境変数として解釈してくれますが、rack-envというGemを利用すると開発環境でも.envで記載した内容を環境変数として解釈できる様になります。
以下、Padrinoで利用する場合。まず、Gemfileにrack-env追加。

# Gemfile
# Project requirements
gem 'rake'
gem 'rack-env', :group => "development"

で、app/app.rb に以下の1行を追加します。

module PadrinoSample
  class App < Padrino::Application
    use Rack::Env unless ENV['RACK_ENV'] == 'production' # 追加

これで本番環境と同様に開発環境上でも.envファイルを利用して環境変数を定義することができます。例えば、

HOGE=foo

と、.envファイルを定義しておけば、

get '/' do
  ENV['HOGE'] #=> foo
end

これで、本番環境での動作を想定して開発環境で開発中からコード中で非公開にしたい情報をハードコーディングせずに済みます。