class Fluent::StringIrcSlackFilter

Constants

BOLD
CLEAR
COLOR_CODE
INVERSE
UNDERLINE

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_string_irc_slack.rb, line 13
def configure(conf)
  @start_code = Regexp.new("(#{COLOR_CODE}[0-9]?[0-9](,[0-9]?[0-9])?|#{BOLD}|#{UNDERLINE}|#{INVERSE})+")
  @stop_code  = Regexp.new(CLEAR)
  super
end
filter(tag, time, record) click to toggle source
# File lib/fluent/plugin/filter_string_irc_slack.rb, line 27
def filter(tag, time, record)
  if message = record['message']
    filtered_message = with_scrub(message) {|str| str.gsub(@start_code, '`').gsub(@stop_code, '`') }
    record = record.dup.tap {|r| r['message'] = filtered_message }
  end
  record
end
shutdown() click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_string_irc_slack.rb, line 23
def shutdown
  super
end
start() click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_string_irc_slack.rb, line 19
def start
  super
end
with_scrub(string) { |string| ... } click to toggle source
# File lib/fluent/plugin/filter_string_irc_slack.rb, line 35
def with_scrub(string)
  begin
    return yield(string)
  rescue ArgumentError => e
    raise e unless e.message.index("invalid byte sequence in") == 0
    log.info "filter_string_irc_slack: invalid byte sequence is replaced in #{string}"
    string.scrub!('?')
    retry
  end
end