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

Instance Method Summary collapse

Methods inherited from RegexLexer

#delegate, get_state, #get_state, #group, #in_state?, #pop!, #push, #reset!, #reset_stack, #run_callback, #run_rule, #stack, start, start_procs, #state, state, #state?, 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

Constructor Details

This class inherits a constructor from Rouge::Lexer

Instance Method Details

#parentObject

the parent lexer - the one being templated.



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

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