Sha256: 94b064523f375ccfce271cf231a2ed64423279e17ee14fd5e90509e6bb4937ef

Contents?: true

Size: 955 Bytes

Versions: 13

Compression:

Stored size: 955 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(/^\/\/=\srequire\s(.+)$/) do |match|
          path = Regexp.last_match[1]
          include_path = File.absolute_path(path, File.dirname(file))
          
          # check if base path exists
          if not File.exists?(include_path)
            include_path = File.absolute_path(path, locals[:base_path])
          end
          
          if File.exists?(include_path)
            include_template = ::Tilt.new(include_path)
            include_contents = include_template.render(nil, locals)
          else
            raise "Path not found: #{include_path}"
          end
        end

        @output = @data
      end

      def allows_script?
        false
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
maglove-0.6.3 lib/maglove/tilt/js_template.rb
maglove-0.6.2 lib/maglove/tilt/js_template.rb
maglove-0.6.1 lib/maglove/tilt/js_template.rb
maglove-0.6.0 lib/maglove/tilt/js_template.rb
maglove-0.5.9 lib/maglove/tilt/js_template.rb
maglove-0.5.8 lib/maglove/tilt/js_template.rb
maglove-0.5.7 lib/maglove/tilt/js_template.rb
maglove-0.5.5 lib/maglove/tilt/js_template.rb
maglove-0.5.4 lib/maglove/tilt/js_template.rb
maglove-0.5.2 lib/maglove/tilt/js_template.rb
maglove-0.5.1 lib/maglove/tilt/js_template.rb
maglove-0.5.0 lib/maglove/tilt/js_template.rb
maglove-0.3.0 lib/maglove/tilt/js_template.rb