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