class Fluent::Plugin::StringScrubFilter
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_string_scrub.rb, line 8 def initialize super end
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_string_scrub.rb, line 12 def configure(conf) super if @replace_char =~ /\\u\{*[A-F0-9]{4}\}*/ @replace_char = eval("\"#{@replace_char}\"") end end
filter_stream(tag, es)
click to toggle source
# File lib/fluent/plugin/filter_string_scrub.rb, line 20 def filter_stream(tag, es) new_es = Fluent::MultiEventStream.new es.each do |time,record| begin scrubbed = recv_record(record) next if scrubbed.nil? new_es.add(time, record) rescue => e router.emit_error_event(tag, time, record, e) end end new_es end
recv_record(record)
click to toggle source
# File lib/fluent/plugin/filter_string_scrub.rb, line 35 def recv_record(record) scrubbed = {} record.each do |k,v| if v.instance_of? Hash scrubbed[with_scrub(k)] = recv_record(v) else scrubbed[with_scrub(k)] = with_scrub(v) end end scrubbed end
with_scrub(string)
click to toggle source
# File lib/fluent/plugin/filter_string_scrub.rb, line 47 def with_scrub(string) begin string =~ // return string rescue ArgumentError => e raise e unless e.message.index("invalid byte sequence in") == 0 if string.frozen? string = string.dup.scrub!(@replace_char) else string.scrub!(@replace_char) end retry end end