類別 CSV::Parser::Scanner

CSV::Scanner 會接收 CSV 輸出,掃描它並傳回內容。它也會透過方法 keep_startkeep_endkeep_backkeep_drop 來控制物件的生命週期。

使用 StringScanner(官方 strscan 寶石)。Strscan 會對 String 執行詞法掃描操作。我們繼承它的物件並利用這些方法。如需更多資訊,請造訪:ruby-doc.org/stdlib-2.6.1/libdoc/strscan/rdoc/StringScanner.html

公開類別方法

new(*args) 按一下以切換來源
呼叫超類別方法 StringScanner::new
# File lib/csv/parser.rb, line 42
def initialize(*args)
  super
  @keeps = []
end

公開實例方法

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