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