Sha256: f22f57bc4cfb250a99ae63fe9698b8cc5b4c1f7c06a08419fca14902dd6778bb

Contents?: true

Size: 1.03 KB

Versions: 4

Compression:

Stored size: 1.03 KB

Contents

# DEPRECATED

require 'tilt'

module Luca
  class Template < Tilt::Template

    def self.namespace
      'JST'
    end

    def self.default_mime_type
      'application/javascript'
    end

    def self.engine_initialized?
      defined? ::EJS
      defined? ::Haml
    end

    def initialize_engine
      require_template_library 'ejs'
      require_template_library 'haml'
    end

    def prepare
      options = @options.merge(:filename => eval_file, :line => line, :escape_attrs => false)
      @engine = ::Haml::Engine.new(data, options)
    end

    def evaluate(scope, locals, &block)
      compiled = @engine.render(scope, locals, &block)
      code = EJS.compile(compiled)
      tmpl = scope.logical_path 

      namespace = self.class.namespace 

      tmpl.gsub! /^.*\/templates\//, ''

      <<-JST
(function() {#{namespace} || (#{namespace} = {}); #{namespace}[#{ tmpl.inspect }] = #{indent(code)}; }).call(this);
      JST
    end

    private

      def indent(string)
        string.gsub(/$(.)/m, "\\1  ").strip
      end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
luca-0.9.91 lib/luca/template.rb
luca-0.9.9 lib/luca/template.rb
luca-0.9.899 lib/luca/template.rb
luca-0.9.89 lib/luca/template.rb