Class: Hca::Template

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.load_runtimeObject



44
45
46
47
48
# File 'lib/hca/template.rb', line 44

def load_runtime
  path = File.join(File.dirname(__FILE__), '..', '..', 'vendor', 'assets', 'javascripts', '**', '*.js')
  runtime = Dir[path].map { |file| File.read(file) }
  ExecJS.compile(runtime.join(' '))
end

.runtimeObject



40
41
42
# File 'lib/hca/template.rb', line 40

def runtime
  @runtime ||= load_runtime
end

Instance Method Details

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



9
10
11
12
13
# File 'lib/hca/template.rb', line 9

def evaluate(scope, locals, &block)
  cs_template = self.class.runtime.eval("compile('#{data}', #{config})")
  js_template = CoffeeScript.compile(cs_template, no_wrap: true)
  @output ||= wrap_template(js_template)
end

#prepareObject



5
6
7
# File 'lib/hca/template.rb', line 5

def prepare
  @data = @data.gsub("'", "\\'").gsub("\n", "\\n")
end