定数を環境変数から取得したい、かつデフォルト値を定義したい
▼文字列を取得したい場合
LOCALE = ENV['LOCALE'] || 'ja'
▼数値を取得したい場合
MAX_COUNT = (c = ENV["MAX_COUNT"].to_i) > 0 ? c : 30 TIMEOUT = (t = ENV["TIMEOUT"].to_f) > 0 ? t : 0.5
※ nil.to_i は「0」nil.to_f は「0.0」 であるため、文字列を取得したい場合と同じように書くとデフォルト値が採用されない。
MAX_COUNT = ENV["MAX_COUNT"].to_i || 30 # 環境変数が定義されていない場合「MAX_COUNT:0」となる TIMEOUT = ENV["TIMEOUT"].to_f || 0.5 # 環境変数が定義されていない場合「TIMEOUT:0.0」となる
【2012/12/12 追記】
コメント頂きました。
数値を取得したい場合はこちらの方が良い気がする。
MAX_COUNT = (ENV["MAX_COUNT"] || 30).to_i TIMEOUT = (ENV["TIMEOUT"] || 0.5).to_f