Sha256: ac7ec9bd0a7f8c691ad4e250c5342c14f8242777f12847ac8f8c2e08e7804bda

Contents?: true

Size: 832 Bytes

Versions: 3

Compression:

Stored size: 832 Bytes

Contents

module Logster
  class SuppressionPattern < Pattern
    def self.set_name
      "__LOGSTER__suppression_patterns_set".freeze
    end

    def save(args = {})
      super
      @store.clear_suppression_patterns_cache
      retro_delete_messages if args[:retroactive]
    end

    def destroy(clear_cache: true) # arg used in tests
      super()
      @store.remove_ignore_count(self.to_s)
      @store.clear_suppression_patterns_cache if clear_cache
    end

    private

    def retro_delete_messages
      keys = []
      grouping_keys = []
      @store.get_all_messages.each do |message|
        if message =~ self.pattern
          keys << message.key
          grouping_keys << message.grouping_key
        end
      end
      @store.bulk_delete(keys, grouping_keys) if keys.size > 0 && grouping_keys.size > 0
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
logster-2.4.2 lib/logster/suppression_pattern.rb
logster-2.4.1 lib/logster/suppression_pattern.rb
logster-2.4.0 lib/logster/suppression_pattern.rb