| Class | Sass::Tree::IfNode |
| In: |
lib/sass/tree/if_node.rb
|
| Parent: | Node |
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
@param expr [Script::Expr] The conditional expression.
If this is nil, this is an `@else` node, not an `@else if`
# File lib/sass/tree/if_node.rb, line 19
19: def initialize(expr)
20: @expr = expr
21: @last_else = self
22: super()
23: end
@see Node#options=
# File lib/sass/tree/if_node.rb, line 34
34: def options=(options)
35: super
36: self.else.options = options if self.else
37: end
Runs the child nodes if the conditional expression is true; otherwise, tries the \{else} nodes.
@param environment [Sass::Environment] The lexical environment containing
variable and mixin values
@return [Array<Tree::Node>] The resulting static nodes @see Sass::Tree
# File lib/sass/tree/if_node.rb, line 48
48: def _perform(environment)
49: environment = Sass::Environment.new(environment)
50: return perform_children(environment) if @expr.nil? || @expr.perform(environment).to_bool
51: return @else.perform(environment) if @else
52: []
53: end