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/audit/type/definition.rb')
-rw-r--r--lib/gitlab/audit/type/definition.rb21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/gitlab/audit/type/definition.rb b/lib/gitlab/audit/type/definition.rb
index f64f66f4ca4..81c88a3a0ae 100644
--- a/lib/gitlab/audit/type/definition.rb
+++ b/lib/gitlab/audit/type/definition.rb
@@ -59,19 +59,36 @@ module Gitlab
end
class << self
+ include ::Gitlab::Utils::StrongMemoize
+
def paths
@paths ||= [Rails.root.join('config', 'audit_events', 'types', '*.yml')]
end
def definitions
- # We lazily load all definitions
- @definitions ||= load_all!
+ load_all!
end
+ strong_memoize_attr :definitions
def get(key)
definitions[key.to_sym]
end
+ def event_names
+ definitions.keys.map(&:to_s)
+ end
+
+ def defined?(key)
+ get(key).present?
+ end
+
+ def stream_only?(key)
+ event_definition = get(key)
+ return false unless event_definition
+
+ event_definition.streamed && !event_definition.saved_to_database
+ end
+
private
def load_all!