method
scan
ruby latest stable - Class:
ERB::Compiler::PercentScanner
scan(&blk)public
No documentation available.
# File lib/erb.rb, line 430
def scan(&blk)
stag_reg = /(.*?)(^%%|^%|<%%|<%=|<%#|<%|\z)/m
etag_reg = /(.*?)(%%>|%>|\z)/m
scanner = StringScanner.new(@src)
while ! scanner.eos?
scanner.scan(@stag ? etag_reg : stag_reg)
yield(scanner[1])
elem = scanner[2]
if elem == '%%'
yield('%')
inline_scan(scanner.scan(/.*?(\n|\z)/), &blk)
elsif elem == '%'
yield(PercentLine.new(scanner.scan(/.*?(\n|\z)/).chomp))
else
yield(elem)
end
end
end