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
new(*args)
click to toggle source
Calls superclass method
# File csv/parser.rb, line 43 def initialize(*args) super @keeps = [] end
Public Instance Methods
each_line(row_separator) { |line| ... }
click to toggle source
# File csv/parser.rb, line 48 def each_line(row_separator) position = pos rest.each_line(row_separator) do |line| position += line.bytesize self.pos = position yield(line) end end
keep_back()
click to toggle source
# File csv/parser.rb, line 66 def keep_back self.pos = @keeps.pop end
keep_drop()
click to toggle source
# File csv/parser.rb, line 70 def keep_drop @keeps.pop end
keep_end()
click to toggle source
# File csv/parser.rb, line 61 def keep_end start = @keeps.pop string.byteslice(start, pos - start) end
keep_start()
click to toggle source
# File csv/parser.rb, line 57 def keep_start @keeps.push(pos) end