Class: Jade::Compiler

Inherits:
Object
  • Object
show all
Defined in:
lib/jade/compiler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Compiler

Returns a new instance of Compiler.



7
8
9
10
11
12
# File 'lib/jade/compiler.rb', line 7

def initialize(options={})
  @options = {
    :client => true,
    :compileDebug => false
  }.merge options
end

Instance Attribute Details

#optionsObject

Returns the value of attribute options.



5
6
7
# File 'lib/jade/compiler.rb', line 5

def options
  @options
end

Instance Method Details

#compile(template) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# File 'lib/jade/compiler.rb', line 30

def compile(template)
  template = template.read if template.respond_to?(:read)
  template = context.eval("jade.precompile(#{template.to_json}, #{@options.to_json})")

  %{
    function(locals){
      #{template}
    }
  }
end

#contextObject



22
23
24
# File 'lib/jade/compiler.rb', line 22

def context
  @context ||= ExecJS.compile source
end

#jade_versionObject



26
27
28
# File 'lib/jade/compiler.rb', line 26

def jade_version
  context.eval("jade.version")
end

#sourceObject



14
15
16
17
18
19
20
# File 'lib/jade/compiler.rb', line 14

def source
  @source ||= %{
    var window = {};
    #{Jade::Source::jade}
    var jade = window.jade;
  }
end