Class: Lanes::API::LanesTemplates

Inherits:
JsAssetCompiler show all
Defined in:
lib/lanes/api/javascript_processor.rb

Instance Method Summary collapse

Methods inherited from JsAssetCompiler

#prepare, register, #wrap_js

Instance Method Details

#combined_contentsObject



115
116
117
# File 'lib/lanes/api/javascript_processor.rb', line 115

def combined_contents
    [CoffeeScript::Source.contents, contents].join(";\n")
end

#compile(template) ⇒ Object



123
124
125
126
# File 'lib/lanes/api/javascript_processor.rb', line 123

def compile(template)
    template = template.read if template.respond_to?(:read)
    context.call("eco.precompile", template, 'Lanes.Templates.Wrapper','Lanes.Views.Helpers')
end

#contentsObject



111
112
113
# File 'lib/lanes/api/javascript_processor.rb', line 111

def contents
    @contents ||= Pathname.new(__FILE__).dirname.join('eco.js').read
end

#contextObject



119
120
121
# File 'lib/lanes/api/javascript_processor.rb', line 119

def context
    @context ||= ExecJS.compile(combined_contents)
end

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



107
108
109
# File 'lib/lanes/api/javascript_processor.rb', line 107

def evaluate(scope, locals, &block)
    "Lanes.Templates['#{scope.logical_path}']=" + self.compile(data)
end