Class Sass::Tree::Visitors::Cssize
In: lib/sass/tree/visitors/cssize.rb
Parent: Sass::Tree::Visitors::Base

A visitor for converting a static Sass tree into a static CSS tree.

Methods

Classes and Modules

Class Sass::Tree::Visitors::Cssize::Bubble

Constants

Extend = Struct.new(:extender, :target, :node, :directives, :result)   A simple struct wrapping up information about a single `@extend` instance. A single {ExtendNode} can have multiple Extends if either the parent node or the extended selector is a comma sequence.

@attr extender [Sass::Selector::Sequence]

  The selector of the CSS rule containing the `@extend`.

@attr target [Array<Sass::Selector::Simple>] The selector being `@extend`ed. @attr node [Sass::Tree::ExtendNode] The node that produced this extend. @attr directives [Array<Sass::Tree::DirectiveNode>]

  The directives containing the `@extend`.

@attr result [Symbol]

  The result of this extend. One of `:not_found` (the target doesn't exist
  in the document), `:failed_to_unify` (the target exists but cannot be
  unified with the extender), or `:succeeded`.

Public Class methods

@param root [Tree::Node] The root node of the tree to visit. @return [(Tree::Node, Sass::Util::SubsetMap)] The resulting tree of static nodes

  *and* the extensions defined for this tree

Protected Instance methods

Returns the immediate parent of the current node. @return [Tree::Node]

If an exception is raised, this adds proper metadata to the backtrace.

Keeps track of the current parent node.

Like {visit_children}, but doesn‘t set {parent}.

@param node [Sass::Tree::Node] @return [Array<Sass::Tree::Node>] the flattened results of

  visiting all the children of `node`

Bubbles a directive up through RuleNodes.

Registers an extension in the `@extends` subset map.

Modifies exception backtraces to include the imported file.

Bubbles the `@media` directive up through RuleNodes and merges it with other `@media` directives.

Converts nested properties into flat properties and updates the indentation of the prop node based on the nesting level.

In Ruby 1.8, ensures that there‘s only one `@charset` directive and that it‘s at the top of the document.

@return [(Tree::Node, Sass::Util::SubsetMap)] The resulting tree of static nodes

  *and* the extensions defined for this tree

Updates the indentation of the rule node based on the nesting level. The selectors were resolved in {Perform}.

Bubbles the `@supports` directive up through RuleNodes.

Asserts that all the traced children are valid in their new location.

Runs a block of code with the current parent node replaced with the given node.

@param parent [Tree::Node] The new parent for the duration of the block. @yield A block in which the parent is set to `parent`. @return [Object] The return value of the block.

[Validate]