method

scan

Importance_0
v1_8_7_72 - Show latest stable - 0 notes - Class: ERB::Compiler::PercentScanner
scan(&blk) public

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# 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
Register or log in to add new notes.