Class | Tilt::ERBTemplate |
In: |
lib/sinatra/tilt.rb
|
Parent: | Template |
ERB template implementation. See: www.ruby-doc.org/stdlib/libdoc/erb/rdoc/classes/ERB.html
# File lib/sinatra/tilt.rb, line 216 216: def compile! 217: @engine = ::ERB.new(data, options[:safe], options[:trim], '@_out_buf') 218: end
# 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
# File lib/sinatra/tilt.rb, line 212 212: def initialize_engine 213: require_template_library 'erb' unless defined? ::ERB 214: end