class CSV::Parser
Note: Don't use this class directly. This is an internal class.
Constants
- SCANNER_TEST
- SCANNER_TEST_CHUNK_SIZE_NAME
- SCANNER_TEST_CHUNK_SIZE_VALUE
- STRING_SCANNER_SCAN_ACCEPT_STRING
Public Class Methods
new(input, options)
click to toggle source
# File lib/csv/parser.rb, line 335 def initialize(input, options) @input = input @options = options @samples = [] prepare end
Public Instance Methods
column_separator()
click to toggle source
# File lib/csv/parser.rb, line 343 def column_separator @column_separator end
field_size_limit()
click to toggle source
# File lib/csv/parser.rb, line 355 def field_size_limit @max_field_size&.succ end
header_row?()
click to toggle source
# File lib/csv/parser.rb, line 375 def header_row? @use_headers and @headers.nil? end
headers()
click to toggle source
# File lib/csv/parser.rb, line 371 def headers @headers end
liberal_parsing?()
click to toggle source
# File lib/csv/parser.rb, line 387 def liberal_parsing? @liberal_parsing end
line()
click to toggle source
# File lib/csv/parser.rb, line 395 def line last_line end
lineno()
click to toggle source
# File lib/csv/parser.rb, line 391 def lineno @lineno end
max_field_size()
click to toggle source
# File lib/csv/parser.rb, line 359 def max_field_size @max_field_size end
parse() { |headers| ... }
click to toggle source
# File lib/csv/parser.rb, line 399 def parse(&block) return to_enum(__method__) unless block_given? if @return_headers and @headers and @raw_headers headers = Row.new(@headers, @raw_headers, true) if @unconverted_fields headers = add_unconverted_fields(headers, []) end yield headers end begin @scanner ||= build_scanner __send__(@parse_method, &block) rescue InvalidEncoding if @scanner ignore_broken_line lineno = @lineno else lineno = @lineno + 1 end raise InvalidEncodingError.new(@encoding, lineno) rescue UnexpectedError => error if @scanner ignore_broken_line lineno = @lineno else lineno = @lineno + 1 end message = "This should not be happen: #{error.message}: " message += "Please report this to https://github.com/ruby/csv/issues" raise MalformedCSVError.new(message, lineno) end end
quote_character()
click to toggle source
# File lib/csv/parser.rb, line 351 def quote_character @quote_character end
return_headers?()
click to toggle source
# File lib/csv/parser.rb, line 379 def return_headers? @return_headers end
row_separator()
click to toggle source
# File lib/csv/parser.rb, line 347 def row_separator @row_separator end
skip_blanks?()
click to toggle source
# File lib/csv/parser.rb, line 383 def skip_blanks? @skip_blanks end
skip_lines()
click to toggle source
# File lib/csv/parser.rb, line 363 def skip_lines @skip_lines end
unconverted_fields?()
click to toggle source
# File lib/csv/parser.rb, line 367 def unconverted_fields? @unconverted_fields end
use_headers?()
click to toggle source
# File lib/csv/parser.rb, line 434 def use_headers? @use_headers end