| Class | Sass::Tree::ForNode |
| In: |
lib/sass/tree/for_node.rb
|
| Parent: | Node |
A dynamic node representing a Sass `@for` loop.
@see Sass::Tree
@param var [String] The name of the loop variable @param from [Script::Node] The parse tree for the initial expression @param to [Script::Node] The parse tree for the final expression @param exclusive [Boolean] Whether to include `to` in the loop
or stop just before
# File lib/sass/tree/for_node.rb, line 13
13: def initialize(var, from, to, exclusive)
14: @var = var
15: @from = from
16: @to = to
17: @exclusive = exclusive
18: super()
19: end
Runs the child nodes once for each time through the loop, varying the variable each time.
@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/for_node.rb, line 30
30: def _perform(environment)
31: from = @from.perform(environment)
32: to = @to.perform(environment)
33: from.assert_int!
34: to.assert_int!
35:
36: to = to.coerce(from.numerator_units, from.denominator_units)
37: range = Range.new(from.to_i, to.to_i, @exclusive)
38:
39: children = []
40: environment = Sass::Environment.new(environment)
41: range.each do |i|
42: environment.set_local_var(@var, Sass::Script::Number.new(i, from.numerator_units, from.denominator_units))
43: children += perform_children(environment)
44: end
45: children
46: end