Project

General

Profile

Bug #15770

Updated by skyksandr (Aleksandr Kunin) about 5 years ago

It works on 2.5.\*, but doesn't work on 2.6.\* 

 ``` 
 require 'csv' 
 require 'date' 

 counter = 0 

 CSV.foreach('./05-31-20.CSV', skip_lines: /^[^0-9]{4}/) do |row| 
   time = row[0] 

   p time if time.length < 23 
   counter += 1 
 end 

 p "Processed: #{counter} lines" 
 ``` 

 And the result is: 

 ``` 
 "03-09T09:40:04.00Z" 
 "Processed: 4424 lines" 
 ``` 

 So there are two problems: 
 1. Line 4424 got corrupted by slicing 5 symbols ("2019-") 
 2. Not whole file is parsed, total number of lines: **4497** 

 EDIT: 
 With regex `/^(?![0-9]{4})/` in addition to corrupt first field parser hangs in infinite loop.

Back