From 26dcbbb935f378174e17728639f4842c7bd39bed Mon Sep 17 00:00:00 2001 From: Matthew Bass Date: Wed, 3 Apr 2024 18:50:24 -0400 Subject: [PATCH] Fix bug env specific var bug Fixes a bug which caused env specific vars to always return nil if the same var wasn't also defined at the top level. --- lib/nesta/config.rb | 9 +++++---- test/unit/config_test.rb | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) 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',