summaryrefslogtreecommitdiff
path: root/lib/coderay/scanners/rhtml.rb
diff options
context:
space:
mode:
authorKornelius Kalnbach <murphy@rubychan.de>2011-08-19 03:09:35 +0200
committerKornelius Kalnbach <murphy@rubychan.de>2011-08-19 03:09:35 +0200
commit75bc5455af8c3c3381066aac3d5fff42264cac6f (patch)
tree589d2c912ddd94c517eb794bcdf3257f8348f3c0 /lib/coderay/scanners/rhtml.rb
parentfdd17b6a09efb275238a3baef275465d31452f2a (diff)
downloadcoderay-75bc5455af8c3c3381066aac3d5fff42264cac6f.tar.gz
Major rewrite of encoders to support IO output; fixed some minor scanner bugs; cleanups; dropped NitroXHTML scanner; improved tests
Diffstat (limited to 'lib/coderay/scanners/rhtml.rb')
-rw-r--r--lib/coderay/scanners/rhtml.rb77
1 files changed, 0 insertions, 77 deletions
diff --git a/lib/coderay/scanners/rhtml.rb b/lib/coderay/scanners/rhtml.rb
deleted file mode 100644
index 9bfab5c..0000000
--- a/lib/coderay/scanners/rhtml.rb
+++ /dev/null
@@ -1,77 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
- load :ruby
-
- # Scanner for HTML ERB templates.
- class RHTML < Scanner
-
- register_for :rhtml
- title 'HTML ERB Template'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- ERB_RUBY_BLOCK = /
- <%(?!%)[=-]?
- (?>
- [^\-%]* # normal*
- (?> # special
- (?: %(?!>) | -(?!%>) )
- [^\-%]* # normal*
- )*
- )
- (?: -?%> )?
- /x # :nodoc:
-
- START_OF_ERB = /
- <%(?!%)
- /x # :nodoc:
-
- protected
-
- def setup
- @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- def scan_tokens encoder, options
-
- until eos?
-
- if (match = scan_until(/(?=#{START_OF_ERB})/o) || scan_rest) and not match.empty?
- @html_scanner.tokenize match, :tokens => encoder
-
- elsif match = scan(/#{ERB_RUBY_BLOCK}/o)
- start_tag = match[/\A<%[-=#]?/]
- end_tag = match[/-?%?>?\z/]
- encoder.begin_group :inline
- encoder.text_token start_tag, :inline_delimiter
- code = match[start_tag.size .. -1 - end_tag.size]
- if start_tag[/\A<%#/]
- encoder.text_token code, :comment
- else
- @ruby_scanner.tokenize code
- end unless code.empty?
- encoder.text_token end_tag, :inline_delimiter unless end_tag.empty?
- encoder.end_group :inline
-
- else
- raise_inspect 'else-case reached!', encoder
- end
-
- end
-
- encoder
-
- end
-
- end
-
-end
-end