Class
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
Class Methods
::
lib/csv/parser.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/csv/parser.rb, line 42
def initialize(*args)
super
@keeps = []
end
No documentation available
Instance Methods
lib/csv/parser.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/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
No documentation available
lib/csv/parser.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/csv/parser.rb, line 65
def keep_back
self.pos = @keeps.pop
end
No documentation available
lib/csv/parser.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/csv/parser.rb, line 69
def keep_drop
@keeps.pop
end
No documentation available
#
lib/csv/parser.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/csv/parser.rb, line 60
def keep_end
start = @keeps.pop
string.byteslice(start, pos - start)
end
No documentation available
lib/csv/parser.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/csv/parser.rb, line 56
def keep_start
@keeps.push(pos)
end
No documentation available