Sha256: 70ed027ca15289f7f1bb405dfb04b4754c1d7cdfb0350a1d568a91a0287f49e8
Contents?: true
Size: 1.34 KB
Versions: 12
Compression:
Stored size: 1.34 KB
Contents
require_relative 'filter/convert' require_relative 'filter/gsub' require_relative 'filter/index' require_relative 'filter/parse' require_relative 'filter/scan' require_relative 'filter/stamp' require_relative 'filter/tag' require_relative 'filter/debug' module Anschel class Filter attr_reader :filters def initialize config, stats, log log.info event: 'filter-loading' log.debug event: 'filter-config', config: config config ||= {} # Allow for nil config @filters = Hash.new { |h,k| h[k] = [] } config.each do |event_type, filter_defns| filter_defns.each do |filter_defn| filter_type = filter_defn.keys.first filter_conf = filter_defn[filter_type] @filters[event_type] << self.send(filter_type, filter_conf, stats, log) end end log.info event: 'filter-fully-loaded' end def apply event raise 'Event does not have a "type" field' unless event[:type] type = event[:type].to_sym # In case of modification filters[:_before].each { |f| f.call event } filters[type].each { |f| f.call event } filters[:_after].each { |f| f.call event } event end private def filtered event, options if remove_field = options[:remove_field] event.delete remove_field.to_sym end event end end end
Version data entries
12 entries across 12 versions & 1 rubygems