class CSV::Parser::Scanner

Parent:
StringScanner

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) Show source
# File lib/csv/parser.rb, line 42
def initialize(*args)
  super
  @keeps = []
end
Calls superclass method StringScanner::new

Public Instance Methods

each_line(row_separator) { |line| ... } Show source
# 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
keep_back() Show source
# File lib/csv/parser.rb, line 65
def keep_back
  self.pos = @keeps.pop
end
keep_drop() Show source
# File lib/csv/parser.rb, line 69
def keep_drop
  @keeps.pop
end
keep_end() Show source
# File lib/csv/parser.rb, line 60
def keep_end
  start = @keeps.pop
  string.byteslice(start, pos - start)
end
keep_start() Show source
# File lib/csv/parser.rb, line 56
def keep_start
  @keeps.push(pos)
end

Ruby Core © 1993–2020 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.