@@ -197,14 +197,7 @@ def process_partial(stream_identity, tag, time, record)
197197 end
198198 if force_flush && @buffer_overflow_method == :new
199199 @buffer [ stream_identity ] << [ tag , time , record ]
200- @buffer_size [ stream_identity ] = if [ ] . respond_to? ( :sum )
201- record . keys . sum ( &:bytesize ) + record . values . sum ( &:bytesize )
202- else
203- # Support Ruby 2.3 or earlier
204- record . inject ( 0 ) do |memo , ( key , value ) |
205- memo + key . bytesize + value . bytesize
206- end
207- end
200+ @buffer_size [ stream_identity ] = record . keys . sum ( &:bytesize ) + record . values . sum ( &:bytesize )
208201 if @partial_value != record [ @partial_key ]
209202 new_time , new_record = flush_buffer ( stream_identity )
210203 time = new_time if @use_first_timestamp
@@ -283,14 +276,7 @@ def continuous_line?(text)
283276 end
284277
285278 def overflow? ( stream_identity , record )
286- size = if [ ] . respond_to? ( :sum )
287- record . keys . sum ( &:bytesize ) + record . values . sum ( &:bytesize )
288- else
289- # Support Ruby 2.3 or earlier
290- record . inject ( 0 ) do |memo , ( key , value ) |
291- memo + key . bytesize + value . bytesize
292- end
293- end
279+ size = record . keys . sum ( &:bytesize ) + record . values . sum ( &:bytesize )
294280 if @buffer_size [ stream_identity ] + size > @buffer_limit_size
295281 @buffer_size [ stream_identity ] = 0
296282 true
@@ -358,3 +344,18 @@ def handle_timeout_error(tag, time, record, message)
358344 end
359345 end
360346end
347+
348+ class Array
349+ # Support Ruby 2.3 or earlier
350+ unless [ ] . respond_to? ( :sum )
351+ def sum
352+ inject ( 0 ) do |memo , value |
353+ if block_given?
354+ memo + yield ( value )
355+ else
356+ memo + value
357+ end
358+ end
359+ end
360+ end
361+ end
0 commit comments