Class: Crush::Closure::Compiler

Inherits:
Engine
  • Object
show all
Defined in:
lib/crush/closure.rb

Overview

Engine implementation of Google’s Closure Compiler, using the closure-compiler gem. See:

rubygems.org/gems/closure-compiler

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Engine

compile, compress, #compress, #initialize, #render

Constructor Details

This class inherits a constructor from Crush::Engine

Class Method Details

.engine_initialized?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/crush/closure.rb', line 12

def self.engine_initialized?
  !!(defined?(::Closure) && defined?(::Closure::Compiler))
end

Instance Method Details

#evaluate(scope, locals, &block) ⇒ Object



25
26
27
# File 'lib/crush/closure.rb', line 25

def evaluate(scope, locals, &block)
  @output ||= @engine.compile(data)
end

#initialize_engineObject



16
17
18
# File 'lib/crush/closure.rb', line 16

def initialize_engine
  require_template_library "closure-compiler"
end

#prepareObject



20
21
22
23
# File 'lib/crush/closure.rb', line 20

def prepare
  @engine = ::Closure::Compiler.new(options)
  @output = nil
end