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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/metrics/dashboard/cache.rb')
-rw-r--r--lib/gitlab/metrics/dashboard/cache.rb63
1 files changed, 0 insertions, 63 deletions
diff --git a/lib/gitlab/metrics/dashboard/cache.rb b/lib/gitlab/metrics/dashboard/cache.rb
deleted file mode 100644
index 54b5250d209..00000000000
--- a/lib/gitlab/metrics/dashboard/cache.rb
+++ /dev/null
@@ -1,63 +0,0 @@
-# frozen_string_literal: true
-
-require 'set'
-
-module Gitlab
- module Metrics
- module Dashboard
- class Cache
- CACHE_KEYS = 'all_cached_metric_dashboards'
-
- class << self
- # This class method (Gitlab::Metrics::Dashboard::Cache.fetch) can be used
- # when the key does not need to be deleted by `delete_all!`.
- # For example, out of the box dashboard caches do not need to be deleted.
- delegate :fetch, to: :"Rails.cache"
-
- alias_method :for, :new
- end
-
- def initialize(project)
- @project = project
- end
-
- # Stores a dashboard in the cache, documenting the key
- # so the cache can be cleared in bulk at another time.
- def fetch(key)
- register_key(key)
-
- Rails.cache.fetch(key) { yield }
- end
-
- # Resets all dashboard caches, such that all
- # dashboard content will be loaded from source on
- # subsequent dashboard calls.
- def delete_all!
- all_keys.each { |key| Rails.cache.delete(key) }
-
- Rails.cache.delete(catalog_key)
- end
-
- private
-
- def register_key(key)
- new_keys = all_keys.add(key).to_a.join('|')
-
- Rails.cache.write(catalog_key, new_keys)
- end
-
- def all_keys
- keys = Rails.cache.read(catalog_key)&.split('|')
- Set.new(keys)
- end
-
- # One key to store them all...
- # This key is used to store the names of all the keys that contain this
- # project's dashboards.
- def catalog_key
- "#{CACHE_KEYS}_#{@project.id}"
- end
- end
- end
- end
-end