Method: Inversion::Template#render

Defined in:
lib/inversion/template.rb

#render(parentstate = nil, &block) ⇒ Object Also known as: to_s

Render the template, optionally passing a render state (if, for example, the template is being rendered inside another template).



346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
# File 'lib/inversion/template.rb', line 346

def render( parentstate=nil, &block )
	self.log.info "rendering template %#x" % [ self.object_id * 2 ]
	opts = self.options
	opts.merge!( parentstate.options ) if parentstate

	self.fragments.clear

	state = Inversion::RenderState.new( parentstate, self.attributes, opts, &block )

	# self.log.debug "  rendering node tree: %p" % [ @node_tree ]
	self.walk_tree {|node| state << node }
	self.log.info "  done rendering template %#x: %0.4fs" %
		[ self.object_id/2, state.time_elapsed ]

	if parentstate
		parentstate.fragments.merge!( state.fragments )
	else
		self.fragments.replace( state.rendered_fragments )
	end

	return state.to_s
end