Class: Sass::Tree::ForNode
Overview
A dynamic node representing a Sass @for
loop.
Constant Summary
Constants inherited from Node
Instance Attribute Summary
Attributes inherited from Node
#children, #filename, #has_children, #line, #options
Instance Method Summary collapse
-
#_perform(environment) ⇒ Array<Tree::Node>
protected
Runs the child nodes once for each time through the loop, varying the variable each time.
-
#initialize(var, from, to, exclusive) ⇒ ForNode
constructor
A new instance of ForNode.
-
#invalid_child?(child) ⇒ Boolean, String
protected
Returns an error message if the given child node is invalid, and false otherwise.
- #to_src(tabs, opts, fmt) 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(var, from, to, exclusive) ⇒ ForNode
Returns a new instance of ForNode.
13 14 15 16 17 18 19 |
# File 'lib/sass/tree/for_node.rb', line 13
def initialize(var, from, to, exclusive)
@var = var
@from = from
@to = to
@exclusive = exclusive
super()
end
|
Instance Method Details
#_perform(environment) ⇒ Array<Tree::Node> (protected)
Runs the child nodes once for each time through the loop, varying the variable each time.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/sass/tree/for_node.rb', line 37
def _perform(environment)
from = @from.perform(environment)
to = @to.perform(environment)
from.assert_int!
to.assert_int!
to = to.coerce(from.numerator_units, from.denominator_units)
range = Range.new(from.to_i, to.to_i, @exclusive)
children = []
environment = Sass::Environment.new(environment)
range.each do |i|
environment.set_local_var(@var, Sass::Script::Number.new(i, from.numerator_units, from.denominator_units))
children += perform_children(environment)
end
children
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::ForNodes.
63 64 65 |
# File 'lib/sass/tree/for_node.rb', line 63
def invalid_child?(child)
super unless child.is_a?(ExtendNode)
end
|
#to_src(tabs, opts, fmt) (protected)
24 25 26 27 28 |
# File 'lib/sass/tree/for_node.rb', line 24
def to_src(tabs, opts, fmt)
to = @exclusive ? "to" : "through"
"#{' ' * tabs}@for $#{dasherize(@var, opts)} from #{@from.to_sass(opts)} #{to} #{@to.to_sass(opts)}" +
children_to_src(tabs, opts, fmt)
end
|