diff --git a/lib/nesta/config.rb b/lib/nesta/config.rb index a540b501..4cdd63c4 100644 --- a/lib/nesta/config.rb +++ b/lib/nesta/config.rb @@ -33,10 +33,11 @@ def fetch(setting, *default) setting = setting.to_s self.config ||= read_config_file(setting) env_config = config.fetch(Nesta::App.environment.to_s, {}) - env_config.fetch( - setting, - config.fetch(setting) { raise NotDefined.new(setting) } - ) + env_config.fetch(setting) do + config.fetch(setting) do + raise NotDefined.new(setting) + end + end rescue NotDefined default.empty? && raise || (return default.first) end diff --git a/test/unit/config_test.rb b/test/unit/config_test.rb index 14e80b8b..3cb8ddf2 100644 --- a/test/unit/config_test.rb +++ b/test/unit/config_test.rb @@ -38,6 +38,12 @@ end end + it 'returns environment specific settings' do + stub_config('test' => { 'content' => 'rack_env_specific/path'}) do + assert_equal 'rack_env_specific/path', Nesta::Config.content + end + end + it 'overrides top level settings with environment specific settings' do config = { 'content' => 'general/path',