класс 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 43 def initialize(*args) super @keeps = [] end
Вызывает метод родительского класса
StringScanner::new Публичные методы экземпляра
# File lib/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 # File lib/csv/parser.rb, line 66 def keep_back self.pos = @keeps.pop end
# File lib/csv/parser.rb, line 70 def keep_drop @keeps.pop end
# File lib/csv/parser.rb, line 61 def keep_end start = @keeps.pop string.byteslice(start, pos - start) end
# File lib/csv/parser.rb, line 57 def keep_start @keeps.push(pos) end
Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.