lib/crush/closure.rb in crush-0.2.0 vs lib/crush/closure.rb in crush-0.3.0

- old
+ new

@@ -1,25 +1,30 @@ +require "crush/engine" + module Crush module Closure + # Engine implementation of Google's Closure Compiler, + # using the closure-compiler gem. See: + # + # https://rubygems.org/gems/closure-compiler class Compiler < Crush::Engine - def self.engine_name - "closure" - end + self.default_mime_type = "application/javascript" def self.engine_initialized? - !!(defined? ::Closure) && !!(defined? ::Closure::Compiler) + !!(defined? ::Closure && defined? ::Closure::Compiler) end def initialize_engine require_template_library "closure-compiler" end def prepare @engine = ::Closure::Compiler.new(options) + @output = nil end - def evaluate - @engine.compile(data) + def evaluate(scope, locals, &block) + @output ||= @engine.compile(data) end end end end