Class Tilt::ERBTemplate
In: lib/sinatra/tilt.rb
Parent: Template
Template BuilderTemplate RDiscountTemplate LiquidTemplate RDocTemplate MustacheTemplate StringTemplate RedClothTemplate HamlTemplate ERBTemplate SassTemplate ErubisTemplate Cache lib/sinatra/tilt.rb Tilt dot/m_4_0.png

Methods

Public Instance methods

[Source]

     # File lib/sinatra/tilt.rb, line 216
216:     def compile!
217:       @engine = ::ERB.new(data, options[:safe], options[:trim], '@_out_buf')
218:     end

[Source]

     # File lib/sinatra/tilt.rb, line 224
224:     def evaluate(scope, locals, &block)
225:       source, offset = local_assignment_code(locals)
226:       source = [source, template_source].join("\n")
227: 
228:       original_out_buf =
229:         scope.instance_variables.any? { |var| var.to_sym == :@_out_buf } &&
230:         scope.instance_variable_get(:@_out_buf)
231: 
232:       scope.instance_eval source, eval_file, line - offset
233: 
234:       output = scope.instance_variable_get(:@_out_buf)
235:       scope.instance_variable_set(:@_out_buf, original_out_buf)
236: 
237:       output
238:     end

[Source]

     # File lib/sinatra/tilt.rb, line 212
212:     def initialize_engine
213:       require_template_library 'erb' unless defined? ::ERB
214:     end

[Source]

     # File lib/sinatra/tilt.rb, line 220
220:     def template_source
221:       @engine.src
222:     end

Private Instance methods

[Source]

     # File lib/sinatra/tilt.rb, line 245
245:       def local_assignment_code(locals)
246:         source, offset = super
247:         [source, offset + 1]
248:       end

[Validate]