Module CodeRay::Scanners
In: lib/coderay/scanner.rb
lib/coderay/scanners/_map.rb
lib/coderay/scanners/c.rb
lib/coderay/scanners/css.rb
lib/coderay/scanners/debug.rb
lib/coderay/scanners/delphi.rb
lib/coderay/scanners/diff.rb
lib/coderay/scanners/html.rb
lib/coderay/scanners/java/builtin_types.rb
lib/coderay/scanners/java.rb
lib/coderay/scanners/java_script.rb
lib/coderay/scanners/json.rb
lib/coderay/scanners/nitro_xhtml.rb
lib/coderay/scanners/plaintext.rb
lib/coderay/scanners/rhtml.rb
lib/coderay/scanners/ruby/patterns.rb
lib/coderay/scanners/ruby.rb
lib/coderay/scanners/scheme.rb
lib/coderay/scanners/sql.Keith.rb
lib/coderay/scanners/sql.rb
lib/coderay/scanners/xml.rb
lib/coderay/scanners/yaml.rb

Scanners

This module holds the Scanner class and its subclasses. For example, the Ruby scanner is named CodeRay::Scanners::Ruby can be found in coderay/scanners/ruby.

Scanner also provides methods and constants for the register mechanism and the [] method that returns the Scanner class belonging to the given lang.

See PluginHost.

Methods

Classes and Modules

Module CodeRay::Scanners::Java
Module CodeRay::Scanners::Ruby
Class CodeRay::Scanners::C
Class CodeRay::Scanners::CSS
Class CodeRay::Scanners::Debug
Class CodeRay::Scanners::Delphi
Class CodeRay::Scanners::Diff
Class CodeRay::Scanners::HTML
Class CodeRay::Scanners::JSON
Class CodeRay::Scanners::Java
Class CodeRay::Scanners::JavaScript
Class CodeRay::Scanners::NitroXHTML
Class CodeRay::Scanners::Plaintext
Class CodeRay::Scanners::RHTML
Class CodeRay::Scanners::Ruby
Class CodeRay::Scanners::SQL
Class CodeRay::Scanners::Scanner
Class CodeRay::Scanners::Scheme
Class CodeRay::Scanners::XML
Class CodeRay::Scanners::YAML

Private Instance methods

[Source]

    # File lib/coderay/scanners/nitro_xhtml.rb, line 80
80:     def reset_instance
81:       super
82:       @html_scanner.reset
83:     end

[Source]

     # File lib/coderay/scanners/nitro_xhtml.rb, line 85
 85:     def scan_tokens tokens, options
 86: 
 87:       until eos?
 88: 
 89:         if (match = scan_until(/(?=#{START_OF_RUBY})/o) || scan_until(/\z/)) and not match.empty?
 90:           @html_scanner.tokenize match
 91: 
 92:         elsif match = scan(/#{NITRO_VALUE_BLOCK}/o)
 93:           start_tag = match[0,2]
 94:           delimiter = CLOSING_PAREN[start_tag[1,1]]
 95:           end_tag = match[-1,1] == delimiter ? delimiter : ''
 96:           tokens << [:open, :inline]
 97:           tokens << [start_tag, :inline_delimiter]
 98:           code = match[start_tag.size .. -1 - end_tag.size]
 99:           @ruby_scanner.tokenize code
100:           tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
101:           tokens << [:close, :inline]
102: 
103:         elsif match = scan(/#{NITRO_RUBY_BLOCK}/o)
104:           start_tag = '<?r'
105:           end_tag = match[-2,2] == '?>' ? '?>' : ''
106:           tokens << [:open, :inline]
107:           tokens << [start_tag, :inline_delimiter]
108:           code = match[start_tag.size .. -(end_tag.size)-1]
109:           @ruby_scanner.tokenize code
110:           tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
111:           tokens << [:close, :inline]
112: 
113:         elsif entity = scan(/#{NITRO_ENTITY}/o)
114:           tokens << [entity, :entity]
115:         
116:         elsif scan(/%/)
117:           tokens << [matched, :error]
118: 
119:         else
120:           raise_inspect 'else-case reached!', tokens
121:         end
122: 
123:       end
124: 
125:       tokens
126: 
127:     end

[Source]

    # File lib/coderay/scanners/nitro_xhtml.rb, line 75
75:     def setup
76:       @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
77:       @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
78:     end

[Validate]