lib/hogan_assets/tilt.rb in hogan_assets-1.0.3 vs lib/hogan_assets/tilt.rb in hogan_assets-1.1.0
- old
+ new
@@ -2,11 +2,23 @@
module HoganAssets
class Tilt < Tilt::Template
self.default_mime_type = 'application/javascript'
+ def initialize_engine
+ require_template_library 'haml'
+ rescue LoadError
+ # haml not available
+ end
+
def evaluate(scope, locals, &block)
- compiled_template = Hogan.compile(data)
+ if scope.pathname.extname == '.hamstache'
+ raise "Unable to complile #{scope.pathname} because haml is not available. Did you add the haml gem?" unless HoganAssets::Config.haml_available?
+ compiled_template = Haml::Engine.new(data, @options).render
+ compiled_template = Hogan.compile(compiled_template)
+ else
+ compiled_template = Hogan.compile(data)
+ end
template_name = scope.logical_path.inspect
<<-TEMPLATE
this.HoganTemplates || (this.HoganTemplates = {});
this.HoganTemplates[#{template_name}] = new Hogan.Template(#{compiled_template});
TEMPLATE