Closing tag class
The ContainerTag that this end tag closes
Overridden to provide a default body.
# File lib/inversion/template/endtag.rb, line 12
def initialize( body='', linenum=nil, colnum=nil )
super
@opener = nil
end
Render the tag as the body of a comment, suitable for template debugging.
# File lib/inversion/template/endtag.rb, line 48
def as_comment_body
return "End of %s" % [ self.opener.as_comment_body ]
end
Parser callback -- close the given
state's currently-open container node.
# File lib/inversion/template/endtag.rb, line 27
def before_appending( state )
@opener = state.pop
self.log.debug "End tag for %s at %s" % [ @opener.tagname, @opener.location ]
# If the end tag has a body, it should match the container that's just
# been popped.
if self.body &&
!self.body.empty? &&
self.body.downcase != @opener.tagname.downcase
raise Inversion::ParseError, "unbalanced end: expected %p, got %p" % [
@opener.tagname.downcase,
self.body.downcase,
]
end
super
end