Sha256: a7206c0771bbee9165be03d2f47b085d6eb68ba3956b78e85589cc33e2bceadb
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
require 'tilt' module HandlebarsAssets class TiltHandlebars < Tilt::Template def self.default_mime_type 'application/javascript' end def evaluate(scope, locals, &block) name = basename(scope.logical_path) relative_path = scope.logical_path.gsub(/^templates\/(.*)$/i, "\\1") compiled_hbs = Handlebars.precompile(data) if name.start_with?('_') partial_name = relative_path.gsub(/\//, '_').gsub(/__/, '_').dump <<-PARTIAL (function() { Handlebars.registerPartial(#{partial_name}, Handlebars.template(#{compiled_hbs})); }).call(this); PARTIAL else template_name = relative_path.dump <<-TEMPLATE (function() { this.HandlebarsTemplates || (this.HandlebarsTemplates = {}); this.HandlebarsTemplates[#{template_name}] = Handlebars.template(#{compiled_hbs}); return HandlebarsTemplates[#{template_name}]; }).call(this); TEMPLATE end end protected def basename(path) path.gsub(%r{.*/}, '') end def prepare; end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
handlebars_assets-0.5.0 | lib/handlebars_assets/tilt_handlebars.rb |