Class: Sass::Tree::IfNode
Overview
Constant Summary
Constants inherited from Node
Instance Attribute Summary collapse
-
#else ⇒ IfNode
The next IfNode in the if-else list, or
nil
.
Attributes inherited from Node
#children, #filename, #has_children, #line, #options
Instance Method Summary collapse
-
#_perform(environment) ⇒ Array<Tree::Node>
protected
Runs the child nodes if the conditional expression is true; otherwise, tries the #else nodes.
-
#add_else(node)
Append an
@else
node to the end of the list. -
#initialize(expr) ⇒ IfNode
constructor
A new instance of IfNode.
-
#invalid_child?(child) ⇒ Boolean, String
protected
Returns an error message if the given child node is invalid, and false otherwise.
- #options=(options)
- #to_src(tabs, opts, fmt, is_else = false) protected
Methods inherited from Node
#<<, #==, #_around_dump, #_cssize, #_to_s, #balance, #check_child!, #children_to_src, #cssize, #cssize!, #dasherize, #do_extend, #each, #invisible?, #perform, #perform!, #perform_children, #run_interp, #selector_to_sass, #selector_to_scss, #selector_to_src, #semi, #style, #to_s, #to_sass, #to_scss
Constructor Details
#initialize(expr) ⇒ IfNode
Returns a new instance of IfNode.
19 20 21 22 23 |
# File 'lib/sass/tree/if_node.rb', line 19
def initialize(expr)
@expr = expr
@last_else = self
super()
end
|
Instance Attribute Details
#else ⇒ IfNode
The next Sass::Tree::IfNode in the if-else list, or nil
.
15 16 17 |
# File 'lib/sass/tree/if_node.rb', line 15
def else
@else
end
|
Instance Method Details
#_perform(environment) ⇒ Array<Tree::Node> (protected)
Runs the child nodes if the conditional expression is true; otherwise, tries the #else nodes.
62 63 64 65 66 67 |
# File 'lib/sass/tree/if_node.rb', line 62
def _perform(environment)
environment = Sass::Environment.new(environment)
return perform_children(environment) if @expr.nil? || @expr.perform(environment).to_bool
return @else.perform(environment) if @else
[]
end
|
#add_else(node)
Append an @else
node to the end of the list.
28 29 30 31 |
# File 'lib/sass/tree/if_node.rb', line 28
def add_else(node)
@last_else.else = node
@last_else = node
end
|
#invalid_child?(child) ⇒ Boolean, String (protected)
Returns an error message if the given child node is invalid, and false otherwise.
ExtendNodes are valid within Sass::Tree::IfNodes.
77 78 79 |
# File 'lib/sass/tree/if_node.rb', line 77
def invalid_child?(child)
super unless child.is_a?(ExtendNode)
end
|
#options=(options)
34 35 36 37 |
# File 'lib/sass/tree/if_node.rb', line 34
def options=(options)
super
self.else.options = options if self.else
end
|
#to_src(tabs, opts, fmt, is_else = false) (protected)
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/sass/tree/if_node.rb', line 42
def to_src(tabs, opts, fmt, is_else = false)
name =
if !is_else; "if"
elsif @expr; "else if"
else; "else"
end
str = "#{' ' * tabs}@#{name}"
str << " #{@expr.to_sass(opts)}" if @expr
str << children_to_src(tabs, opts, fmt)
str << @else.send(:to_src, tabs, opts, fmt, true) if @else
str
end
|