Class: I18n::ErbParser::Scanner

Inherits:
ERB::Compiler::Scanner
  • Object
show all
Defined in:
lib/i18n/parser/erb_parser.rb

Instance Method Summary collapse

Instance Method Details

#scanObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/i18n/parser/erb_parser.rb', line 17

def scan
  stag_reg = /(.*?)(^[ \t]*<%-|<%%|<%=|<%#|<%-|<%|\z)/m
  etag_reg = /(.*?)(%%>|-%>|%>|\z)/m
  scanner = StringScanner.new(@src)
  while !scanner.eos?
    scanner.scan(@stag ? etag_reg : stag_reg)
    yield(scanner[1]) unless scanner[1].nil?
    yield(scanner[2]) unless scanner[2].nil?
  end
end