1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
# frozen_string_literal: true
# CoffeeScript / Literate CoffeeScript template implementation.
#
# CoffeeScript templates do not support object scopes, locals, or yield.
#
# === See also
#
# * http://coffeescript.org
#
# === Related modules
#
# * Tilt::CoffeeScriptTemplate
# * Tilt::CoffeeScriptLiterateTemplate
require_relative 'template'
require 'coffee_script'
module Tilt
class CoffeeScriptTemplate < StaticTemplate
self.default_mime_type = 'application/javascript'
@default_bare = false
class << self
attr_accessor :default_bare
end
def self.literate?
false
end
def prepare
if !@options.key?(:bare) and !@options.key?(:no_wrap)
@options[:bare] = self.class.default_bare
end
@options[:literate] ||= self.class.literate?
@output = CoffeeScript.compile(@data, @options)
end
end
class CoffeeScriptLiterateTemplate < CoffeeScriptTemplate
@default_bare = false
def self.literate?
true
end
end
end
|