Class: Rouge::TemplateLexer Abstract

Inherits:
RegexLexer show all
Defined in:
lib/rouge/template_lexer.rb

Overview

This class is abstract.

A TemplateLexer is one that accepts a :parent option, to specify which language is being templated. The lexer class can specify its own default for the parent lexer, which is otherwise defaulted to HTML.

Direct Known Subclasses

Lexers::ERB, Lexers::Handlebars, Lexers::PHP

Constant Summary

Constants inherited from RegexLexer

RegexLexer::MAX_NULL_SCANS

Constants included from Rouge::Token::Tokens

Rouge::Token::Tokens::Num, Rouge::Token::Tokens::Str

Instance Method Summary collapse

Methods inherited from RegexLexer

append, #delegate, get_state, #get_state, #goto, #group, #groups, #in_state?, #pop!, prepend, #push, #recurse, replace_state, #reset!, #reset_stack, #stack, start, start_procs, #state, state, #state?, state_definitions, states, #step, #stream_tokens, #token

Methods inherited from Lexer

aliases, all, analyze_text, assert_utf8!, #debug, default_options, demo, demo_file, desc, filenames, find, find_fancy, guess, guess_by_filename, guess_by_mimetype, guess_by_source, guesses, #initialize, lex, #lex, mimetypes, #option, #options, #reset!, #stream_tokens, tag, #tag, title

Methods included from Rouge::Token::Tokens

token

Constructor Details

This class inherits a constructor from Rouge::Lexer

Instance Method Details

#parentObject

the parent lexer - the one being templated.



11
12
13
14
15
16
17
18
# File 'lib/rouge/template_lexer.rb', line 11

def parent
  return @parent if instance_variable_defined? :@parent
  @parent = option(:parent) || 'html'
  if @parent.is_a? ::String
    lexer_class = Lexer.find(@parent)
    @parent = lexer_class.new(self.options)
  end
end