Inversion template node base class. Template text is parsed by the Inversion::Parser into nodes, and appended to a tree that is later walked when the template is rendered.
This class is abstract; it just defines the API that other nodes are expected to implement.
The column number the node was parsed from in the template source (if known)
The line number the node was parsed from in the template source (if known)
Create a new TextNode with the specified
source.
# File lib/inversion/template/node.rb, line 24
def initialize( body, linenum=nil, colnum=nil )
@body = body
@linenum = linenum
@colnum = colnum
end
Default (no-op) implementation of the #after_appending callback. This exists so defining the append callbacks are optional for Node’s subclasses.
# File lib/inversion/template/node.rb, line 83
def after_appending( state )
# Nothing to do
return nil
end
Default (no-op) implementation of the #after_rendering callback. This exists so defining the rendering callbacks are optional for Node’s subclasses.
# File lib/inversion/template/node.rb, line 101
def after_rendering( state=nil )
# Nothing to do
return nil
end
Render the node as a comment
# File lib/inversion/template/node.rb, line 50
def as_comment_body
return self.inspect
end
Default (no-op) implementation of the #before_appending callback. This exists so defining the append callbacks are optional for Node’s subclasses.
# File lib/inversion/template/node.rb, line 74
def before_appending( state )
# Nothing to do
return nil
end
Default (no-op) implementation of the #before_rendering callback. This exists so defining the rendering callbacks are optional for Node’s subclasses.
# File lib/inversion/template/node.rb, line 92
def before_rendering( state=nil )
# Nothing to do
return nil
end
Returns true if the node introduces a new parsing/rendering
scope.
# File lib/inversion/template/node.rb, line 56
def is_container?
return false
end
Return the location of the tag in the template, if it was parsed from one (i.e., if it was created with a StringScanner)
# File lib/inversion/template/node.rb, line 64
def location
return "line %s, column %s" % [
self.linenum || '??',
self.colnum || '??',
]
end
Render the node using the given render_state. By default,
rendering a node returns nil.
# File lib/inversion/template/node.rb, line 44
def render( render_state )
return nil
end