diff options
Diffstat (limited to 'lib/gitlab/audit/type/definition.rb')
-rw-r--r-- | lib/gitlab/audit/type/definition.rb | 21 |
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! |