Class: Skim::Template

Inherits:
Object
  • Object
show all
Defined in:
lib/skim/template.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(input) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/skim/template.rb', line 9

def self.call(input)
  source   = input[:data]
  context  = input[:environment].context_class.new(input)

  result = new { source }.render
  context..merge(data: result)
end

.skim_srcObject



41
42
43
44
# File 'lib/skim/template.rb', line 41

def self.skim_src
  @@skim_src ||=
    File.read(File.expand_path("../../../vendor/assets/javascripts/skim.js.coffee", __FILE__))
end

Instance Method Details

#coffee_script_srcObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/skim/template.rb', line 17

def coffee_script_src

  engine = Engine.new(options.merge({
    :streaming => false, # Overwrite option: No streaming support in Tilt
    :file => eval_file,
    :indent => 2
  }))
  src = engine.call(data)
"\#{self.class.skim_src unless engine.options[:use_asset]}\nreturn (context = {}) ->\n  (context.Skim || Skim).withContext.call {}, context, ->\n\#{src}\n"
end

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



37
38
39
# File 'lib/skim/template.rb', line 37

def evaluate(scope, locals, &block)
  precompiled_template
end

#prepareObject



33
34
35
# File 'lib/skim/template.rb', line 33

def prepare
  @src = CoffeeScript.compile(coffee_script_src)
end