Sha256: 1d91f22f2068bbf28cff7e722b2af28706394cae5a0a46e83fd819016f76567b

Contents?: true

Size: 1.26 KB

Versions: 15

Compression:

Stored size: 1.26 KB

Contents

# Require gem
require 'coffee_script'

module Middleman
  module Renderers
    # CoffeeScript Renderer
    module CoffeeScript
      # Setup extension
      class << self
        # Once registered
        def registered(app)
          # Tell Tilt to use it as well (for inline scss blocks)
          ::Tilt.register 'coffee', DebuggingCoffeeScriptTemplate
          ::Tilt.prefer(DebuggingCoffeeScriptTemplate)

          app.before_configuration do
            template_extensions coffee: :js
            DebuggingCoffeeScriptTemplate.middleman_app = self
          end
        end
        alias_method :included, :registered
      end

      # A Template for Tilt which outputs debug messages
      class DebuggingCoffeeScriptTemplate < ::Tilt::CoffeeScriptTemplate
        # Make the current Middleman app accessible to the template
        cattr_accessor :middleman_app

        # Add exception messaging
        # @param [Class] context
        # @param [Hash] locals
        # @return [String]
        def evaluate(context, locals, &block)
          return super if middleman_app.build?

          begin
            super
          rescue ::ExecJS::RuntimeError => e
            e.to_s
          rescue => e
            e.to_s
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
middleman-core-3.4.1 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.4.0 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.12 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.11 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.10 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.9 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.8 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.7 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.6 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.5 lib/middleman-core/renderers/coffee_script.rb
middleman-core-cj-3.3.6 lib/middleman-core/renderers/coffee_script.rb
middleman-core-cj-3.3.5 lib/middleman-core/renderers/coffee_script.rb
middleman-core-cj-3.3.4 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.4 lib/middleman-core/renderers/coffee_script.rb
middleman-core-3.3.3 lib/middleman-core/renderers/coffee_script.rb