Class: Fluent::LinetrimerFilter

Inherits:
Filter
  • Object
show all
Defined in:
lib/fluent/plugin/filter_linetrimer.rb

Instance Method Summary collapse

Constructor Details

#initializeLinetrimerFilter

Returns a new instance of LinetrimerFilter.



8
9
10
11
# File 'lib/fluent/plugin/filter_linetrimer.rb', line 8

def initialize
  require 'string/scrub' if RUBY_VERSION.to_f < 2.1
  super
end

Instance Method Details

#configure(conf) ⇒ Object



13
14
15
# File 'lib/fluent/plugin/filter_linetrimer.rb', line 13

def configure(conf)
  super
end

#filter(tag, time, record) ⇒ Object



17
18
19
20
21
# File 'lib/fluent/plugin/filter_linetrimer.rb', line 17

def filter(tag, time, record)
  return record unless record[key]
  record[key] = trim(record[key], num)
  record
end

#trim(string, num) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/fluent/plugin/filter_linetrimer.rb', line 23

def trim(string, num)
  begin
    string.split("\n")[0...num].join("\n")
  rescue ArgumentError => e
    raise e unless e.message.index("invalid byte sequence in") == 0
    string.scrub!('?')
    retry
  end
end