класс CSV::Parser::Scanner
CSV::Scanner получает выходные данные CSV, сканирует их и возвращает содержимое. Он также контролирует жизненный цикл объекта с помощью своих методов keep_start, keep_end, keep_back, keep_drop.
Использует StringScanner (официальная библиотека strscan). Strscan предоставляет операции лексического сканирования над String. Мы наследуем его объект и используем его методы. Для получения дополнительной информации посетите: ruby-doc.org/stdlib-2.6.1/libdoc/strscan/rdoc/StringScanner.html
Публичные Классовые Методы
# File lib/csv/parser.rb, line 42 def initialize(*args) super @keeps = [] end
Вызывает метод родительского класса
StringScanner::new Публичные Методы Экземпляров
# 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.