gitlab-org--gitlab-foss/lib/gitlab/with_request_store.rb

26 lines
525 B
Ruby

# frozen_string_literal: true
module Gitlab
module WithRequestStore
def with_request_store(&block)
# Skip enabling the request store if it was already active. Whatever
# instantiated the request store first is responsible for clearing it
return yield if RequestStore.active?
enabling_request_store(&block)
end
private
def enabling_request_store
RequestStore.begin!
yield
ensure
RequestStore.end!
RequestStore.clear!
end
extend self
end
end