In Files

  • csv/parser.rb

CSV::Parser

Note: Don't use this class directly. This is an internal class.

Constants

SCANNER_TEST

Public Class Methods

new(input, options) click to toggle source
 
               # File csv/parser.rb, line 257
def initialize(input, options)
  @input = input
  @options = options
  @samples = []

  prepare
end
            

Public Instance Methods

column_separator() click to toggle source
 
               # File csv/parser.rb, line 265
def column_separator
  @column_separator
end
            
field_size_limit() click to toggle source
 
               # File csv/parser.rb, line 277
def field_size_limit
  @field_size_limit
end
            
header_row?() click to toggle source
 
               # File csv/parser.rb, line 293
def header_row?
  @use_headers and @headers.nil?
end
            
headers() click to toggle source
 
               # File csv/parser.rb, line 289
def headers
  @headers
end
            
liberal_parsing?() click to toggle source
 
               # File csv/parser.rb, line 305
def liberal_parsing?
  @liberal_parsing
end
            
line() click to toggle source
 
               # File csv/parser.rb, line 313
def line
  last_line
end
            
lineno() click to toggle source
 
               # File csv/parser.rb, line 309
def lineno
  @lineno
end
            
parse(&block) click to toggle source
 
               # File csv/parser.rb, line 317
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
    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() click to toggle source
 
               # File csv/parser.rb, line 273
def quote_character
  @quote_character
end
            
return_headers?() click to toggle source
 
               # File csv/parser.rb, line 297
def return_headers?
  @return_headers
end
            
row_separator() click to toggle source
 
               # File csv/parser.rb, line 269
def row_separator
  @row_separator
end
            
skip_blanks?() click to toggle source
 
               # File csv/parser.rb, line 301
def skip_blanks?
  @skip_blanks
end
            
skip_lines() click to toggle source
 
               # File csv/parser.rb, line 281
def skip_lines
  @skip_lines
end
            
unconverted_fields?() click to toggle source
 
               # File csv/parser.rb, line 285
def unconverted_fields?
  @unconverted_fields
end
            
use_headers?() click to toggle source
 
               # File csv/parser.rb, line 349
def use_headers?
  @use_headers
end