class CSV::Parser::Scanner
CSV::Scanner receives a CSV output, scans it and return the content. It also controls the life cycle of the object with its methods keep_start, keep_end, keep_back, keep_drop.
Uses StringScanner (the official strscan gem). Strscan provides lexical scanning operations on a String. We inherit its object and take advantage on the methods. For more information, please visit: docs.ruby-lang.org/en/master/StringScanner.html
Public Class Methods
Source
# File lib/csv/parser.rb, line 55 def initialize(*args) super @keeps = [] end
Calls superclass method
Public Instance Methods
Source
# File lib/csv/parser.rb, line 60 def each_line(row_separator) position = pos rest.each_line(row_separator) do |line| position += line.bytesize self.pos = position yield(line) end end
Source
# File lib/csv/parser.rb, line 73 def keep_end start = @keeps.pop string.byteslice(start, pos - start) end