class Tilt::MarkabyTemplate

  1. lib/tilt/markaby.rb
Superclass: Template

Methods

Public Class

  1. builder_class

Public Instance

  1. __capture_markaby_tilt__
  2. evaluate

Public Class methods

builder_class()
[show source]
   # File lib/tilt/markaby.rb
18 def self.builder_class
19   @builder_class ||= Class.new(Markaby::Builder) do
20     def __capture_markaby_tilt__(&block)
21       __run_markaby_tilt__ do
22         text capture(&block)
23       end
24     end
25   end
26 end

Public Instance methods

__capture_markaby_tilt__(&block)
[show source]
   # File lib/tilt/markaby.rb
20 def __capture_markaby_tilt__(&block)
21   __run_markaby_tilt__ do
22     text capture(&block)
23   end
24 end
evaluate(scope, locals, &block)
[show source]
   # File lib/tilt/markaby.rb
28     def evaluate(scope, locals, &block)
29       builder = self.class.builder_class.new({}, scope)
30       builder.locals = locals
31 
32       if @data.kind_of? Proc
33         (class << builder; self end).send(:define_method, :__run_markaby_tilt__, &@data)
34       else
35         builder.instance_eval <<-CODE, __FILE__, __LINE__
36           def __run_markaby_tilt__
37             #{@data}
38           end
39         CODE
40       end
41 
42       if block
43         builder.__capture_markaby_tilt__(&block)
44       else
45         builder.__run_markaby_tilt__
46       end
47 
48       builder.to_s
49     end