Welcome to mirror list, hosted at ThFree Co, Russian Federation.

batch_loader.rb « utils « gitlab « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 67ade0633e25a8634e2d6355f8573540f98e246e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# frozen_string_literal: true

module Gitlab
  module Utils
    module BatchLoader
      # Clears batched items under the specified batch key
      # https://github.com/exAspArk/batch-loader#batch-key
      def self.clear_key(batch_key)
        return if ::BatchLoader::Executor.current.nil?

        items_to_clear = ::BatchLoader::Executor.current.items_by_block.select do |k, v|
          # The Hash key here is [source_location, batch_key], so we just check k[1]
          k[1] == batch_key
        end

        items_to_clear.each do |k, v|
          ::BatchLoader::Executor.current.items_by_block.delete(k)
          ::BatchLoader::Executor.current.loaded_values_by_block.delete(k)
        end
      end
    end
  end
end