Sha256: 60f5e3c5b840478db58aef27b879f6355d27a7becd478bc8cf433e2ce63351b1

Contents?: true

Size: 962 Bytes

Versions: 17

Compression:

Stored size: 962 Bytes

Contents

module MagLove
  module Tilt
    class JsTemplate < ::Tilt::Template
      self.default_mime_type = 'application/javascript'

      def prepare
      end

      def evaluate(scope, locals, &block)
        # handle includes
        @data = @data.gsub(%r{^//=\srequire\s(.+)$}) do |match|
          path = Regexp.last_match[1]
          include_path = File.absolute_path(path, File.dirname(file))

          # check if base path exists
          unless File.exist?(include_path)
            include_path = File.absolute_path(path, locals[:base_path])
          end

          if File.exist?(include_path)
            include_template = ::Tilt.new(include_path)
            include_template.render(Object.new, locals)
          else
            raise "Path not found: #{include_path}"
          end
        end

        @output = @data
      end

      def allows_script?
        false
      end
    end
  end
end

Tilt.mappings["js"] = [MagLove::Tilt::JsTemplate]

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
maglove-1.1.5 lib/maglove/tilt/js_template.rb
maglove-1.1.4 lib/maglove/tilt/js_template.rb
maglove-1.1.3 lib/maglove/tilt/js_template.rb
maglove-2.0.4 lib/maglove/tilt/js_template.rb
maglove-2.0.2 lib/maglove/tilt/js_template.rb
maglove-2.0.1 lib/maglove/tilt/js_template.rb
maglove-1.1.2 lib/maglove/tilt/js_template.rb
maglove-2.0.0 lib/maglove/tilt/js_template.rb
maglove-1.1.1 lib/maglove/tilt/js_template.rb
maglove-1.1.0 lib/maglove/tilt/js_template.rb
maglove-1.0.9 lib/maglove/tilt/js_template.rb
maglove-1.0.8 lib/maglove/tilt/js_template.rb
maglove-1.0.7 lib/maglove/tilt/js_template.rb
maglove-1.0.5 lib/maglove/tilt/js_template.rb
maglove-1.0.4 lib/maglove/tilt/js_template.rb
maglove-1.0.3 lib/maglove/tilt/js_template.rb
maglove-1.0.2 lib/maglove/tilt/js_template.rb