require "ice/handlers/base" require 'v8' module Ice module Handlers module Coffeekup def self.convert_template(template_text, vars = {}) Base.convert_template(template_text) do |context| coffeescript_file = "#{File.dirname(__FILE__)}/../../../../js/coffee-script.js" coffeekup_file = "#{File.dirname(__FILE__)}/../../../../js/coffeekup.js" context.eval(open(coffeescript_file).read) context.eval(open(coffeekup_file).read) coffeekup_helpers_file = "#{File.dirname(__FILE__)}/../../../../js/lib/coffeekup-path-helper.coffee" combo = open(coffeekup_helpers_file).read + "\n" + template_text.sub(/^(\s)*/, "") template = context["coffeekup"]["compile"].call(combo) template.call({context: vars.to_ice}) end end def self.call(template) <<-COFFEEKUP template_source = <<-COFFEEKUP_TEMPLATE #{template.source} COFFEEKUP_TEMPLATE #{Base.variables} Ice::Handlers::Coffeekup.convert_template(template_source, variables.merge(local_assigns)) COFFEEKUP end end end end