@@ -85,9 +85,10 @@ def keep_drop
85
85
# If there is no more data (eos? = true), it returns "".
86
86
#
87
87
class InputsScanner
88
- def initialize ( inputs , encoding , chunk_size : 8192 )
88
+ def initialize ( inputs , encoding , row_separator , chunk_size : 8192 )
89
89
@inputs = inputs . dup
90
90
@encoding = encoding
91
+ @row_separator = row_separator
91
92
@chunk_size = chunk_size
92
93
@last_scanner = @inputs . empty?
93
94
@keeps = [ ]
@@ -250,7 +251,7 @@ def read_chunk
250
251
@last_scanner = @inputs . empty?
251
252
true
252
253
else
253
- chunk = input . gets ( nil , @chunk_size )
254
+ chunk = input . gets ( @row_separator , @chunk_size )
254
255
if chunk
255
256
raise InvalidEncoding unless chunk . valid_encoding?
256
257
@scanner = StringScanner . new ( chunk )
@@ -778,6 +779,7 @@ def build_scanner
778
779
Integer ( ( ENV [ "CSV_PARSER_SCANNER_TEST_CHUNK_SIZE" ] || "1" ) , 10 )
779
780
InputsScanner . new ( inputs ,
780
781
@encoding ,
782
+ @row_separator ,
781
783
chunk_size : chunk_size )
782
784
end
783
785
else
@@ -807,7 +809,7 @@ def build_scanner
807
809
StringIO . new ( sample )
808
810
end
809
811
inputs << @input
810
- InputsScanner . new ( inputs , @encoding )
812
+ InputsScanner . new ( inputs , @encoding , @row_separator )
811
813
end
812
814
end
813
815
end
0 commit comments