Sha256: 2698589fa38d5b8145334d06f98293a1f377250a2db6a38fdbd9fd4b7a60c9ea

Contents?: true

Size: 976 Bytes

Versions: 2

Compression:

Stored size: 976 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

2 entries across 2 versions & 1 rubygems

Version Path
haml_assets-0.0.2 lib/haml_assets/haml_sprockets_engine.rb
haml_assets-0.0.1 lib/haml_assets/haml_sprockets_engine.rb