class Sass::Tree::IfNode
A dynamic node representing a Sass `@if` statement.
{IfNode}s are a little odd, in that they also represent `@else` and `@else if`s. This is done as a linked list: each {IfNode} has a link ({#else}) to the next {IfNode}.
@see Sass::Tree
Attributes
else[RW]
The next {IfNode} in the if-else list, or `nil`.
@return [IfNode]
expr[RW]
The conditional expression. If this is nil, this is an `@else` node, not an `@else if`.
@return [Script::Expr]
Public Class Methods
_load(data)
click to toggle source
# File lib/sass/tree/if_node.rb, line 42 def self._load(data) expr, else_, children = Marshal.load(data) node = IfNode.new(expr) node.else = else_ node.children = children node.instance_variable_set('@last_else', node.else ? node.else.instance_variable_get('@last_else') : node) node end
new(expr)
click to toggle source
@param expr [Script::Expr] See {#expr}
Calls superclass method
# File lib/sass/tree/if_node.rb, line 24 def initialize(expr) @expr = expr @last_else = self super() end
Public Instance Methods
_dump(f)
click to toggle source
# File lib/sass/tree/if_node.rb, line 38 def _dump(f) Marshal.dump([expr, self.else, children]) end
add_else(node)
click to toggle source
Append an `@else` node to the end of the list.
@param node [IfNode] The `@else` node to append
# File lib/sass/tree/if_node.rb, line 33 def add_else(node) @last_else.else = node @last_else = node end