method

scan

scan()
public

No documentation available.

# File lib/erb.rb, line 426
        def scan
          new_line = true
          stag_reg = /(.*?)(<%%|<%=|<%#|<%|\n|\z)/
          etag_reg = /(.*?)(%%>|%>|\n|\z)/
          scanner = StringScanner.new(@src)
          while ! scanner.eos?
            if new_line && @stag.nil?
              if scanner.scan(/%%/)
                yield('%')
                new_line = false
                next
              elsif scanner.scan(/%/)
                yield(PercentLine.new(scanner.scan(/.*?(\n|\z)/).chomp))
                next
              end
            end
            scanner.scan(@stag ? etag_reg : stag_reg)
            text = scanner[1]
            elem = scanner[2]
            yield(text) unless text.empty?
            yield(elem) unless elem.empty?
            new_line = (elem == "\n")
          end
        end