method

scan

Importance_0
v1_8_6_287 - Show latest stable - 0 notes - Class: ERB::Compiler::PercentScanner
scan() 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 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
Register or log in to add new notes.