Sha256: cd5d0992257449b1e9c5616de6ba00368de252dd8b7c4545df7b7f8ae84329e0

Contents?: true

Size: 955 Bytes

Versions: 8

Compression:

Stored size: 955 Bytes

Contents

require 'sass/tree/node'

module Sass::Tree
  # A dynamic node representing a Sass `@while` loop.
  #
  # @see Sass::Tree
  class WhileNode < Node
    # @param expr [Script::Node] The parse tree for the continue expression
    def initialize(expr)
      @expr = expr
      super()
    end

    protected

    def to_src(tabs, opts, fmt)
      "#{'  ' * tabs}@while #{@expr.to_sass}" + children_to_src(tabs, opts, fmt)
    end

    # Runs the child nodes until the continue expression becomes false.
    #
    # @param environment [Sass::Environment] The lexical environment containing
    #   variable and mixin values
    # @return [Array<Tree::Node>] The resulting static nodes
    # @see Sass::Tree
    def _perform(environment)
      children = []
      new_environment = Sass::Environment.new(environment)
      while @expr.perform(environment).to_bool
        children += perform_children(new_environment)
      end
      children
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
haml-edge-2.3.186 lib/sass/tree/while_node.rb
haml-edge-2.3.185 lib/sass/tree/while_node.rb
haml-edge-2.3.184 lib/sass/tree/while_node.rb
haml-3.0.0.beta.1 lib/sass/tree/while_node.rb
haml-edge-2.3.183 lib/sass/tree/while_node.rb
haml-edge-2.3.182 lib/sass/tree/while_node.rb
haml-edge-2.3.181 lib/sass/tree/while_node.rb
haml-edge-2.3.180 lib/sass/tree/while_node.rb