diff options
author | Douwe Maan <douwe@selenight.nl> | 2016-06-01 12:55:00 +0200 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2016-06-01 12:55:00 +0200 |
commit | 4a50e1f0514f318d10a273d1c252d855cfb106fb (patch) | |
tree | b5ae0597bea9768e5540b49dcbb184bed462e43d /lib/gitlab/current_settings.rb | |
parent | c0f19cc94ecb606e521afc4a39582c4dae9c5967 (diff) | |
parent | c8eb1dccabe5cd961895127dbbbf46d3eee4aebd (diff) | |
download | gitlab-ce-4a50e1f0514f318d10a273d1c252d855cfb106fb.tar.gz |
Merge branch 'current-settings-use-request-store-during-request'
Diffstat (limited to 'lib/gitlab/current_settings.rb')
-rw-r--r-- | lib/gitlab/current_settings.rb | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/gitlab/current_settings.rb b/lib/gitlab/current_settings.rb index 29c4e221dd4..92c7e8b9d88 100644 --- a/lib/gitlab/current_settings.rb +++ b/lib/gitlab/current_settings.rb @@ -1,18 +1,22 @@ module Gitlab module CurrentSettings def current_application_settings - key = :current_application_settings - - RequestStore.store[key] ||= begin - settings = nil + if RequestStore.active? + RequestStore.fetch(:current_application_settings) { ensure_application_settings! } + else + ensure_application_settings! + end + end - if connect_to_db? - settings = ::ApplicationSetting.current - settings ||= ::ApplicationSetting.create_from_defaults unless ActiveRecord::Migrator.needs_migration? - end + def ensure_application_settings! + settings = ::ApplicationSetting.cached - settings || fake_application_settings + if !settings && connect_to_db? + settings = ::ApplicationSetting.current + settings ||= ::ApplicationSetting.create_from_defaults unless ActiveRecord::Migrator.needs_migration? end + + settings || fake_application_settings end def fake_application_settings |