Class: CSV::Parser
- Inherits:
-
Object
show all
- Defined in:
- lib/csv/parser.rb
Overview
Note: Don’t use this class directly. This is an internal class.
Defined Under Namespace
Classes: InputsScanner, InvalidEncoding, Scanner, UnoptimizedStringIO
Instance Method Summary
collapse
Constructor Details
#initialize(input, options) ⇒ Parser
Returns a new instance of Parser.
259
260
261
262
263
264
265
|
# File 'lib/csv/parser.rb', line 259
def initialize(input, options)
@input = input
@options = options
@samples = []
prepare
end
|
Instance Method Details
#column_separator ⇒ Object
267
268
269
|
# File 'lib/csv/parser.rb', line 267
def column_separator
@column_separator
end
|
#field_size_limit ⇒ Object
279
280
281
|
# File 'lib/csv/parser.rb', line 279
def field_size_limit
@field_size_limit
end
|
295
296
297
|
# File 'lib/csv/parser.rb', line 295
def
@use_headers and @headers.nil?
end
|
291
292
293
|
# File 'lib/csv/parser.rb', line 291
def
@headers
end
|
#liberal_parsing? ⇒ Boolean
307
308
309
|
# File 'lib/csv/parser.rb', line 307
def liberal_parsing?
@liberal_parsing
end
|
#line ⇒ Object
315
316
317
|
# File 'lib/csv/parser.rb', line 315
def line
last_line
end
|
#lineno ⇒ Object
311
312
313
|
# File 'lib/csv/parser.rb', line 311
def lineno
@lineno
end
|
#parse(&block) ⇒ Object
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
|
# File 'lib/csv/parser.rb', line 319
def parse(&block)
return to_enum(__method__) unless block_given?
if @return_headers and @headers and @raw_headers
= Row.new(@headers, @raw_headers, true)
if @unconverted_fields
= add_unconverted_fields(, [])
end
yield
end
begin
@scanner ||= build_scanner
if quote_character.nil?
parse_no_quote(&block)
elsif @need_robust_parsing
parse_quotable_robust(&block)
else
parse_quotable_loose(&block)
end
rescue InvalidEncoding
if @scanner
ignore_broken_line
lineno = @lineno
else
lineno = @lineno + 1
end
message = "Invalid byte sequence in #{@encoding}"
raise MalformedCSVError.new(message, lineno)
end
end
|
#quote_character ⇒ Object
275
276
277
|
# File 'lib/csv/parser.rb', line 275
def quote_character
@quote_character
end
|
299
300
301
|
# File 'lib/csv/parser.rb', line 299
def
@return_headers
end
|
#row_separator ⇒ Object
271
272
273
|
# File 'lib/csv/parser.rb', line 271
def row_separator
@row_separator
end
|
#skip_blanks? ⇒ Boolean
303
304
305
|
# File 'lib/csv/parser.rb', line 303
def skip_blanks?
@skip_blanks
end
|
#skip_lines ⇒ Object
283
284
285
|
# File 'lib/csv/parser.rb', line 283
def skip_lines
@skip_lines
end
|
#unconverted_fields? ⇒ Boolean
287
288
289
|
# File 'lib/csv/parser.rb', line 287
def unconverted_fields?
@unconverted_fields
end
|
351
352
353
|
# File 'lib/csv/parser.rb', line 351
def
@use_headers
end
|