Sha256: fb3d53f277c8b0d5703e851e18e6cde95f308c10d852855d0300b1a2419512cb

Contents?: true

Size: 829 Bytes

Versions: 1

Compression:

Stored size: 829 Bytes

Contents

require 'haml-sprockets/version'
require 'tilt'
require 'sprockets'
require 'execjs'

module Haml
  module Sprockets
    class Template < ::Tilt::Template
      def self.engine_initialized?
        true
      end

      def initialize_engine
      end

      def prepare
      end

      def evaluate(scope, locals, &block)
        haml_code = data.dup
        haml_code = haml_code.gsub(/\\/,"\\\\").gsub(/\'/,"\\\\'").gsub(/\n/,"\\n")

        haml_lib = File.read("#{::Rails.root}/vendor/assets/javascripts/haml.js")
        context = ExecJS.compile(haml_lib)
        return context.eval("Haml.optimize(Haml.compile('#{haml_code}', {escapeHtmlByDefault: true}))")
      end
    end
  end
end

Sprockets::Engines
Sprockets.register_engine '.hamljs', Haml::Sprockets::Template
require 'haml-sprockets/engine' if defined?(Rails)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
haml-sprockets-0.0.7 lib/haml-sprockets.rb