Class: Emcee::DirectiveProcessor

Inherits:
Sprockets::DirectiveProcessor
  • Object
show all
Defined in:
lib/emcee/directive_processor.rb

Overview

The DirectiveProcessor is responsible for parsing and evaluating directive comments in a source file.

Constant Summary collapse

HEADER_PATTERN =

Matches the entire header/directive block. This is everything from the top of the file, enclosed in html comments.

/\A((?m:\s*)(<!--(?m:.*?)-->))+/

Instance Method Summary collapse

Instance Method Details

#render(context, locals) ⇒ Object

Implement render so that it uses our own header pattern.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/emcee/directive_processor.rb', line 10

def render(context, locals)
  @context = context
  @pathname = context.pathname
  @directory = File.dirname(@pathname)

  @header  = data[HEADER_PATTERN, 0] || ""
  @body    = $' || data
  # Ensure body ends in a new line
  @body += "\n" if @body != "" && @body !~ /\n\Z/m

  @included_pathnames = []

  @result = ""
  @result.force_encoding(body.encoding)

  @has_written_body = false

  process_directives
  process_source

  @result
end