Sha256: 0f2b99f0320388d705777d897cbc16df53c6306ca2140663fe34a8e9c7df8324

Contents?: true

Size: 966 Bytes

Versions: 2

Compression:

Stored size: 966 Bytes

Contents

require 'tilt'

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)
      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
    end

    protected

    def prepare; end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hogan_assets-1.2.0 lib/hogan_assets/tilt.rb
hogan_assets-1.1.0 lib/hogan_assets/tilt.rb