Class: Imba::Template

Inherits:
Tilt::Template
  • Object
show all
Defined in:
lib/imba/template.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.compiler_sourceObject



8
9
10
# File 'lib/imba/template.rb', line 8

def self.compiler_source
  File.read Imba::Source.path_for("imbac.js")
end

.contextObject



12
13
14
15
16
17
18
19
# File 'lib/imba/template.rb', line 12

def self.context
  @context ||= ExecJS.compile <<-EOF
    var self = this;#{compiler_source}
    Imbac.compileToString = function(code,o) {
      return Imbac.compile(code,o).toString();
    }
  EOF
end

Instance Method Details

#contextObject



21
22
23
# File 'lib/imba/template.rb', line 21

def context
  self.class.context
end

#evaluate(scope, locals, &block) ⇒ Object



30
31
32
# File 'lib/imba/template.rb', line 30

def evaluate(scope, locals, &block)
  @code
end

#prepareObject



25
26
27
28
# File 'lib/imba/template.rb', line 25

def prepare
  options[:sourcePath] ||= eval_file
  @code = context.call("Imbac.compileToString", data, options)
end