module Mutton::HandlebarsCompiler
Public Instance Methods
compile_handlebars(template_content, template_namespace, mutton_namespace, javascript_helpers = nil)
click to toggle source
# File lib/mutton/handlebars_compiler.rb, line 11 def compile_handlebars(template_content, template_namespace, mutton_namespace, javascript_helpers = nil) ExecJS.compile("#{handlebars_source}; #{javascript_helpers}; #{template_content}; var template = this.#{mutton_namespace}['#{template_namespace}'];") end
handlebars_source()
click to toggle source
TODO: get from asset pipeline
# File lib/mutton/handlebars_compiler.rb, line 21 def handlebars_source Pathname(Mutton.handlebars_file).read end
pre_compile(source)
click to toggle source
# File lib/mutton/handlebars_compiler.rb, line 5 def pre_compile(source) source = source.read if source.respond_to?(:read) handlebar_context = ExecJS.compile(handlebars_source) handlebar_context.call('Handlebars.precompile', source) end
process_handlebars(template_content, template_namespace, mutton_namespace, assigns, javascript_helpers = nil)
click to toggle source
# File lib/mutton/handlebars_compiler.rb, line 15 def process_handlebars(template_content, template_namespace, mutton_namespace, assigns, javascript_helpers = nil) compiled = compile_handlebars(template_content, template_namespace, mutton_namespace, javascript_helpers) compiled.call('template', assigns.as_json) end