Sha256: 178c2ee50d6304cec4fa754cc33959a57368ca304420cee84baf1bb77b46cc72

Contents?: true

Size: 997 Bytes

Versions: 16

Compression:

Stored size: 997 Bytes

Contents

# frozen_string_literal: true

require_relative '../base.rb'

module Fusuma
  module Plugin
    module Filters
      # Filter to keep/discard events from input plugin
      class Filter < Base
        # Filter input event
        # @param event [Event]
        # @return [Event] when keeping event
        # @return [NilClass] when discarding record
        def filter(event)
          return event if event.tag !~ /#{source}/

          return event if keep?(event.record)

          nil
        end

        # @abstract override `#keep?` to implement
        # @param record [String]
        # @return [True]  when keeping record
        # @return [False] when discarding record
        def keep?(record)
          true if record
        end

        # Set source for tag from config.yml.
        # DEFAULT_SOURCE is defined in each Filter plugins.
        def source
          @source ||= config_params(:source) || self.class.const_get('DEFAULT_SOURCE')
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
fusuma-2.0.0.pre lib/fusuma/plugin/filters/filter.rb
fusuma-1.11.1 lib/fusuma/plugin/filters/filter.rb
fusuma-1.10.2 lib/fusuma/plugin/filters/filter.rb
fusuma-1.10.1 lib/fusuma/plugin/filters/filter.rb
fusuma-1.10.0 lib/fusuma/plugin/filters/filter.rb
fusuma-1.9.0 lib/fusuma/plugin/filters/filter.rb
fusuma-1.8.0 lib/fusuma/plugin/filters/filter.rb
fusuma-1.7.0 lib/fusuma/plugin/filters/filter.rb
fusuma-1.6.0 lib/fusuma/plugin/filters/filter.rb
fusuma-1.5.0 lib/fusuma/plugin/filters/filter.rb
fusuma-1.4.1 lib/fusuma/plugin/filters/filter.rb
fusuma-1.4.0 lib/fusuma/plugin/filters/filter.rb
fusuma-1.3.3 lib/fusuma/plugin/filters/filter.rb
fusuma-1.3.2 lib/fusuma/plugin/filters/filter.rb
fusuma-1.3.1 lib/fusuma/plugin/filters/filter.rb
fusuma-1.3.0 lib/fusuma/plugin/filters/filter.rb