lib/rouge/lexers/erb.rb in rouge-0.1.0.rc1 vs lib/rouge/lexers/erb.rb in rouge-0.1.0

- old
+ new

@@ -8,12 +8,10 @@ def self.analyze_text(text) return 0.4 if text =~ /<%.*%>/ end - attr_reader :parent - attr_reader :ruby_lexer def initialize(opts={}) @parent = opts.delete(:parent) || 'html' if @parent.is_a? String lexer_class = Lexer.find(@parent) @parent = lexer_class.new(opts) @@ -22,20 +20,25 @@ @ruby_lexer = Ruby.new(opts) super(opts) end + start do + @parent.reset! + @ruby_lexer.reset! + end + open = /<%%|<%=|<%#|<%-|<%/ close = /%%>|-%>|%>/ state :root do rule /<%#/, 'Comment', :comment rule open, 'Comment.Preproc', :ruby rule /.+?(?=#{open})|.+/m do - delegate lexer.parent + delegate @parent end end state :comment do rule close, 'Comment', :pop! @@ -44,10 +47,10 @@ state :ruby do rule close, 'Comment.Preproc', :pop! rule /.+?(?=#{close})|.+/m do - delegate lexer.ruby_lexer + delegate @ruby_lexer end end end end end