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: ruby-doc.org/stdlib-2.6.1/libdoc/strscan/rdoc/StringScanner.html
Public Class Methods
# File lib/csv/parser.rb, line 42 def initialize(*args) super @keeps = [] end
Calls superclass method
StringScanner::new Public Instance Methods
# File lib/csv/parser.rb, line 47
def each_line(row_separator)
position = pos
rest.each_line(row_separator) do |line|
position += line.bytesize
self.pos = position
yield(line)
end
end # File lib/csv/parser.rb, line 65 def keep_back self.pos = @keeps.pop end
# File lib/csv/parser.rb, line 69 def keep_drop @keeps.pop end
# File lib/csv/parser.rb, line 60 def keep_end start = @keeps.pop string.byteslice(start, pos - start) end
# File lib/csv/parser.rb, line 56 def keep_start @keeps.push(pos) end
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.