diff options
author | Douwe Maan <douwe@selenight.nl> | 2016-06-01 13:55:00 +0300 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2016-06-02 14:30:00 +0300 |
commit | ef205c885b6ea61af3dcf7b6f4770538ff88b968 (patch) | |
tree | 8b28408839914f7b6862d06dfbfca436c091b4ab /lib | |
parent | ac538743305b4de60cb3177103a66c83df406fd6 (diff) |
Merge branch 'current-settings-use-request-store-during-request'
Diffstat (limited to 'lib')
-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 f44d1b3a44e..1a4ddd38513 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 |