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