Sha256: fb79fc341a99b158d1df3fdf7d1ead6e642d482af0f4f0ed39d9f3b682c27241

Contents?: true

Size: 979 Bytes

Versions: 1

Compression:

Stored size: 979 Bytes

Contents

require 'haml'
require 'tilt'

module HamlAssets
  class HamlSprocketsEngine < Tilt::Template
    attr_accessor :locals

    def self.default_mime_type
      'application/javascript'
    end

    class ViewContext
      include Rails.application.routes.url_helpers
      include Rails.application.routes.mounted_helpers
      include ActionView::Helpers

      attr_accessor :output_buffer

      def protect_against_forgery?
        false
      end
    end

    def evaluate(scope, locals, &block)
      self.locals = locals

      begin
        "" + render_haml
      rescue Exception => e
        Rails.logger.debug "ERROR: compiling #{file} RAISED #{e}"
        Rails.logger.debug "Backtrace: #{e.backtrace.join("\n")}"
      end
    end

    protected

    def prepare; end

    def render_haml
      Haml::Engine.new(data, Haml::Template.options.merge(:escape_attrs => false)).render(scope, locals)
    end

    def scope
      @scope ||= ViewContext.new
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
haml_assets-0.0.3 lib/haml_assets/haml_sprockets_engine.rb