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