SmarterCSV, похоже, не имеет для этого никакой утилиты, поэтому я думаю, что единственный способ - подсчитать количество строк до и во время обработки:
line_count = `wc -l < file_name`.to_i
lines_processed = 0
SmarterCSV.process(file_name, { chunk_size: 10, headers_in_file: false, user_provided_headers: user_provided_headers }) do |chunk|
chunk.each do |row|
lines_processed += 1
return if lines_processed == line_count
# parse row
end
end