@@ -21,9 +21,9 @@ module ExceptionDetectorConfig
2121    class  RuleTarget 
2222      attr_accessor  :pattern ,  :to_state 
2323
24-       def  initialize ( p ,   s ) 
25-         @pattern  =  p 
26-         @to_state  =  s 
24+       def  initialize ( pattern ,   state ) 
25+         @pattern  =  pattern 
26+         @to_state  =  state 
2727      end 
2828
2929      def  ==( other ) 
@@ -52,28 +52,28 @@ def self.supported
5252    end 
5353
5454    JAVA_RULES  =  [ 
55-       rule ( [ : start_state,   : java_start_exception] , 
55+       rule ( %i[ start_state   java_start_exception ] , 
5656           /(?:Exception|Error|Throwable|V8 errors stack trace)[:\r \n ]/ , 
5757           :java_after_exception ) , 
5858      rule ( :java_after_exception ,  /^[\t  ]*nested exception is:[\t  ]*/ , 
5959           :java_start_exception ) , 
6060      rule ( :java_after_exception ,  /^[\r \n ]*$/ ,  :java_after_exception ) , 
61-       rule ( [ : java_after_exception,   : java] ,  /^[\t  ]+(?:eval )?at / ,  :java ) , 
61+       rule ( %i[ java_after_exception   java ] ,  /^[\t  ]+(?:eval )?at / ,  :java ) , 
6262
63-       rule ( [ : java_after_exception,   : java] , 
63+       rule ( %i[ java_after_exception   java ] , 
6464           # C# nested exception. 
6565           /^[\t  ]+--- End of inner exception stack trace ---$/ , 
6666           :java ) , 
6767
68-       rule ( [ : java_after_exception,   : java] , 
68+       rule ( %i[ java_after_exception   java ] , 
6969           # C# exception from async code. 
7070           /^--- End of stack trace from previous (?x: 
7171           )location where exception was thrown ---$/ , 
7272           :java ) , 
7373
74-       rule ( [ : java_after_exception,   : java] ,  /^[\t  ]*(?:Caused by|Suppressed):/ , 
74+       rule ( %i[ java_after_exception   java ] ,  /^[\t  ]*(?:Caused by|Suppressed):/ , 
7575           :java_after_exception ) , 
76-       rule ( [ : java_after_exception,   : java] , 
76+       rule ( %i[ java_after_exception   java ] , 
7777           /^[\t  ]*... \d + (?:more|common frames omitted)/ ,  :java ) 
7878    ] . freeze 
7979
@@ -97,13 +97,13 @@ def self.supported
9797      rule ( :start_state ,  /\b panic: / ,  :go_after_panic ) , 
9898      rule ( :start_state ,  /http: panic serving/ ,  :go_goroutine ) , 
9999      rule ( :go_after_panic ,  /^$/ ,  :go_goroutine ) , 
100-       rule ( [ : go_after_panic,   : go_after_signal,   :go_frame_1 ] , 
100+       rule ( %i[ go_after_panic   go_after_signal   go_frame_line1 ] , 
101101           /^$/ ,  :go_goroutine ) , 
102102      rule ( :go_after_panic ,  /^\[ signal / ,  :go_after_signal ) , 
103-       rule ( :go_goroutine ,  /^goroutine \d + \[ [^\] ]+\] :$/ ,  :go_frame_1  ) , 
104-       rule ( :go_frame_1  ,  /^(?:[^\s .:]+\. )*[^\s .():]+\( |^created by / , 
105-            :go_frame_2  ) , 
106-       rule ( :go_frame_2  ,  /^\s / ,  :go_frame_1  ) 
103+       rule ( :go_goroutine ,  /^goroutine \d + \[ [^\] ]+\] :$/ ,  :go_frame_line1  ) , 
104+       rule ( :go_frame_line1  ,  /^(?:[^\s .:]+\. )*[^\s .():]+\( |^created by / , 
105+            :go_frame_line2  ) , 
106+       rule ( :go_frame_line2  ,  /^\s / ,  :go_frame_line1  ) 
107107    ] . freeze 
108108
109109    RUBY_RULES  =  [ 
@@ -129,22 +129,22 @@ def self.supported
129129      rule ( :dart_exc ,  /^Concurrent modification/ ,  :dart_stack ) , 
130130      rule ( :dart_exc ,  /^Out of Memory/ ,  :dart_stack ) , 
131131      rule ( :dart_exc ,  /^Stack Overflow/ ,  :dart_stack ) , 
132-       rule ( :dart_exc ,  /^'.+?':.+?$/ ,  :dart_type_err_1  ) , 
133-       rule ( :dart_type_err_1  ,  /^#\d +\s +.+?\( .+?\) $/ ,  :dart_stack ) , 
134-       rule ( :dart_type_err_1  ,  /^.+?$/ ,  :dart_type_err_2  ) , 
135-       rule ( :dart_type_err_2  ,  /^.*?\^ .*?$/ ,  :dart_type_err_3  ) , 
136-       rule ( :dart_type_err_3  ,  /^$/ ,  :dart_type_err_4  ) , 
137-       rule ( :dart_type_err_4  ,  /^$/ ,  :dart_stack ) , 
138-       rule ( :dart_exc ,  /^FormatException/ ,  :dart_format_err_1  ) , 
139-       rule ( :dart_format_err_1  ,  /^#\d +\s +.+?\( .+?\) $/ ,  :dart_stack ) , 
140-       rule ( :dart_format_err_1  ,  /^./ ,  :dart_format_err_2  ) , 
141-       rule ( :dart_format_err_2  ,  /^.*?\^ / ,  :dart_format_err_3  ) , 
142-       rule ( :dart_format_err_3  ,  /^$/ ,  :dart_stack ) , 
143-       rule ( :dart_exc ,  /^NoSuchMethodError:/ ,  :dart_method_err_1  ) , 
144-       rule ( :dart_method_err_1  ,  /^Receiver:/ ,  :dart_method_err_2  ) , 
145-       rule ( :dart_method_err_2  ,  /^Tried calling:/ ,  :dart_method_err_3  ) , 
146-       rule ( :dart_method_err_3  ,  /^Found:/ ,  :dart_stack ) , 
147-       rule ( :dart_method_err_3  ,  /^#\d +\s +.+?\( .+?\) $/ ,  :dart_stack ) , 
132+       rule ( :dart_exc ,  /^'.+?':.+?$/ ,  :dart_type_err_line1  ) , 
133+       rule ( :dart_type_err_line1  ,  /^#\d +\s +.+?\( .+?\) $/ ,  :dart_stack ) , 
134+       rule ( :dart_type_err_line1  ,  /^.+?$/ ,  :dart_type_err_line2  ) , 
135+       rule ( :dart_type_err_line2  ,  /^.*?\^ .*?$/ ,  :dart_type_err_line3  ) , 
136+       rule ( :dart_type_err_line3  ,  /^$/ ,  :dart_type_err_line4  ) , 
137+       rule ( :dart_type_err_line4  ,  /^$/ ,  :dart_stack ) , 
138+       rule ( :dart_exc ,  /^FormatException/ ,  :dart_format_err_line1  ) , 
139+       rule ( :dart_format_err_line1  ,  /^#\d +\s +.+?\( .+?\) $/ ,  :dart_stack ) , 
140+       rule ( :dart_format_err_line1  ,  /^./ ,  :dart_format_err_line2  ) , 
141+       rule ( :dart_format_err_line2  ,  /^.*?\^ / ,  :dart_format_err_line3  ) , 
142+       rule ( :dart_format_err_line3  ,  /^$/ ,  :dart_stack ) , 
143+       rule ( :dart_exc ,  /^NoSuchMethodError:/ ,  :dart_method_err_line1  ) , 
144+       rule ( :dart_method_err_line1  ,  /^Receiver:/ ,  :dart_method_err_line2  ) , 
145+       rule ( :dart_method_err_line2  ,  /^Tried calling:/ ,  :dart_method_err_line3  ) , 
146+       rule ( :dart_method_err_line3  ,  /^Found:/ ,  :dart_stack ) , 
147+       rule ( :dart_method_err_line3  ,  /^#\d +\s +.+?\( .+?\) $/ ,  :dart_stack ) , 
148148      rule ( :dart_stack ,  /^#\d +\s +.+?\( .+?\) $/ ,  :dart_stack ) , 
149149      rule ( :dart_stack ,  /^<asynchronous suspension>$/ ,  :dart_stack ) 
150150    ] . freeze 
@@ -168,7 +168,7 @@ def self.supported
168168      all : ALL_RULES 
169169    } . freeze 
170170
171-     DEFAULT_FIELDS  =  %w(  message  log ) . freeze 
171+     DEFAULT_FIELDS  =  %w[  message  log ] . freeze 
172172  end 
173173
174174  # State machine that consumes individual log lines and detects 
@@ -236,6 +236,7 @@ def reset
236236    def  transition ( line ) 
237237      @rules [ @state ] . each  do  |r |
238238        next  unless  line  =~ r . pattern 
239+ 
239240        @state  =  r . to_state 
240241        return  true 
241242      end 
@@ -280,14 +281,14 @@ def push(time_sec, record)
280281        @exception_detector . reset 
281282        detection_status  =  :no_trace 
282283      else 
283-         force_flush  if  @max_bytes  >  0  &&
284+         force_flush  if  @max_bytes . positive?  &&
284285                       @buffer_size  + message . length  > @max_bytes 
285286        detection_status  =  @exception_detector . update ( message ) 
286287      end 
287288
288289      update_buffer ( detection_status ,  time_sec ,  record ,  message ) 
289290
290-       force_flush  if  @max_lines  >  0  && @messages . length  == @max_lines 
291+       force_flush  if  @max_lines . positive?  && @messages . length  == @max_lines 
291292    end 
292293
293294    def  flush 
@@ -332,8 +333,7 @@ def extract_message(record)
332333    end 
333334
334335    def  update_buffer ( detection_status ,  time_sec ,  record ,  message ) 
335-       trigger_emit  =  detection_status  == :no_trace  ||
336-                      detection_status  == :end_trace 
336+       trigger_emit  =  %i[ no_trace  end_trace ] . include? ( detection_status ) 
337337      if  @messages . empty?  && trigger_emit 
338338        @emit . call ( time_sec ,  record ) 
339339        return 
@@ -361,16 +361,16 @@ def add(time_sec, record, message)
361361        @first_timestamp  =  time_sec 
362362        @buffer_start_time  =  Time . now 
363363      end 
364-       unless  message . nil? 
365-          message_with_line_break   = 
366-            if   @force_line_breaks  && ! @messages . empty?  && ! message . include? ( " \n " ) 
367-              "\n "  +  message 
368-           else 
369-              message 
370-           end 
371-         @messages  <<  message_with_line_break 
372-          @buffer_size  +=  message_with_line_break . length 
373-       end 
364+       return   if  message . nil? 
365+ 
366+       message_with_line_break   = 
367+         if   @force_line_breaks  && ! @messages . empty?  && ! message . include? ( "\n " ) 
368+           " \n #{ message } " 
369+         else 
370+           message 
371+         end 
372+       @messages  <<  message_with_line_break 
373+       @buffer_size  +=  message_with_line_break . length 
374374    end 
375375  end 
376376end 
0 commit comments