class Inversion::Template::Node
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.
Attributes
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)
Public Class Methods
Create a new TextNode with the specified ‘source`.
# File lib/inversion/template/node.rb, line 23 def initialize( body, linenum=nil, colnum=nil ) @body = body @linenum = linenum @colnum = colnum end
Public Instance Methods
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 82 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 100 def after_rendering( state=nil ) # Nothing to do return nil end
Render the node as a comment
# File lib/inversion/template/node.rb, line 49 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 73 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 91 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 55 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 63 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 43 def render( render_state ) return nil end