Class: Stitch::StitchyCoffeeScriptTemplate

Inherits:
Tilt::Template
  • Object
show all
Defined in:
lib/stitch_rails.rb

Constant Summary collapse

@@default_bare =
false
@@excludes =
[]

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.default_bareObject



9
10
11
# File 'lib/stitch_rails.rb', line 9

def self.default_bare
  @@default_bare
end

.default_bare=(value) ⇒ Object



13
14
15
# File 'lib/stitch_rails.rb', line 13

def self.default_bare=(value)
  @@default_bare = value
end

.engine_initialized?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/stitch_rails.rb', line 19

def self.engine_initialized?
  defined? ::CoffeeScript
end

.excludes=(excludes) ⇒ Object



23
24
25
# File 'lib/stitch_rails.rb', line 23

def self.excludes=(excludes)
  @@excludes = excludes
end

Instance Method Details

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



37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/stitch_rails.rb', line 37

def evaluate(scope, locals, &block)
  name = module_name(scope)
  if (name == 'stitch_rails') || @@excludes.include?(name)
    @output ||= CoffeeScript.compile(data, options)
  else
    @output ||= <<JS
require.define({
  '#{name}': function(exports, require, module) {
#{CoffeeScript.compile(data, options.merge(:bare => true))}
  }
});
JS
  end
end

#initialize_engineObject



27
28
29
# File 'lib/stitch_rails.rb', line 27

def initialize_engine
  require_template_library 'coffee_script'
end

#prepareObject



31
32
33
34
35
# File 'lib/stitch_rails.rb', line 31

def prepare
  if !options.key?(:bare)
    options[:bare] = self.class.default_bare
  end
end