# File lib/kafo/puppet_log_parser.rb, line 3 def initialize @last_level = nil end
# File lib/kafo/puppet_log_parser.rb, line 7 def parse(line) line = normalize_encoding(line) method, message = case when line =~ /^Error:(.*)/ || line =~ /^Err:(.*)/ [:error, $1] when line =~ /^Warning:(.*)/ || line =~ /^Notice:(.*)/ [:warn, $1] when line =~ /^Info:(.*)/ [:info, $1] when line =~ /^Debug:(.*)/ [:debug, $1] else [@last_level.nil? ? :info : @last_level, line] end @last_level = method return [method, message.chomp] end
# File lib/kafo/puppet_log_parser.rb, line 28 def normalize_encoding(line) if line.respond_to?(:encode) && line.respond_to?(:valid_encoding?) line.valid_encoding? ? line : line.encode('UTF-16be', :invalid => :replace, :replace => '?').encode('UTF-8') else # Ruby 1.8.7, doesn't worry about invalid encodings line end end