class MagLove::Tilt::CoffeeTemplate

Public Class Methods

engine_initialized?() click to toggle source
# File lib/maglove/tilt/coffee_template.rb, line 6
def self.engine_initialized?
  defined? ::CoffeeScript
end

Public Instance Methods

allows_script?() click to toggle source
# File lib/maglove/tilt/coffee_template.rb, line 43
def allows_script?
  false
end
evaluate(scope, locals, &block) click to toggle source
# File lib/maglove/tilt/coffee_template.rb, line 18
def evaluate(scope, locals, &block)
  @output = CoffeeScript.compile(@data, options)

  # handle includes
  @output.gsub!(/^include\("([^"]+)"\);$/) do |match|
    path = Regexp.last_match[1]
    path = "#{path}.coffee" if File.extname(path).empty?
    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
end
initialize_engine() click to toggle source
# File lib/maglove/tilt/coffee_template.rb, line 10
def initialize_engine
  require_template_library 'coffee_script'
end
prepare() click to toggle source
# File lib/maglove/tilt/coffee_template.rb, line 14
def prepare
  options[:bare] = true
end