Rails に初コントリビュートした
うれしい。
Rails::Application#config_for
は Rails.env
に応じて YAML ファイルを Hash として読み込むメソッドである。
# config/example.yml development: key: val
config_for(:example)[:key] #=> "val"
また、各環境を通して共通の設定を記述することができる。
# config/example.yml shared: foo: foo development: bar: bar
config_for(:example) #=> {:foo=>"foo", :bar=>"bar"}
これまで、この共通値は shallow merge されていたが、これを deep merge するようにした。
非互換な変更になるため、PR にあたってはユースケースベースで話すことを意識した (表参道.rb でめっちゃ相談した、各位ありがとうございます)。 具体的には他の gem を使って設定値の管理をしているが Rails Way に移行したい、また共通の設定値が深くネストしているみたいな話をした。
あと念のためオプションで挙動を切り替えることも提案したが、特に言及されることなくスッとマージされた。