# class Sass::Tree::DirectiveNode

A static node representing an unprocessed Sass `@`-directive. Directives known to Sass, like `@for` and `@debug`, are handled by their own nodes; only CSS directives like `@media` and `@font-face` become {DirectiveNode}s.

`@import` and `@charset` are special cases; they become {ImportNode}s and {CharsetNode}s, respectively.

@see Sass::Tree

### Attributes

group_end[RW]

@see Sass::Tree::RuleNode#group_end

resolved_value[RW]

The text of the directive after any interpolated SassScript has been resolved. Only set once {Tree::Visitors::Perform} has been run.

@return [String]

tabs[RW]

@see Sass::Tree::RuleNode#tabs

value[RW]

The text of the directive, `@` and all, with interpolation included.

@return [Array<String, Sass::Script::Tree::Node>]

### Public Class Methods

new(value) click to toggle source

@param value [Array<String, Sass::Script::Tree::Node>] See {#value}

Calls superclass method

    # File lib/sass/tree/directive_node.rb, line 30
    def initialize(value)
      @value = value
      @tabs = 0
      super()
    end

resolved(value) click to toggle source

@param value [String] See {#resolved_value} @return [DirectiveNode]

    # File lib/sass/tree/directive_node.rb, line 38
    def self.resolved(value)
      node = new([value])
      node.resolved_value = value
      node
    end

### Public Instance Methods

bubbles?() click to toggle source

    # File lib/sass/tree/directive_node.rb, line 55
    def bubbles?
      has_children
    end

name() click to toggle source

@return [String] The name of the directive, including `@`.

    # File lib/sass/tree/directive_node.rb, line 45
    def name
      @name ||= value.first.gsub(/ .*$/, '')
    end

normalized_name() click to toggle source

Strips out any vendor prefixes and downcases the directive name. @return [String] The normalized name of the directive.

    # File lib/sass/tree/directive_node.rb, line 51
    def normalized_name
      @normalized_name ||= name.gsub(/^(@)(?:-[a-zA-Z0-9]+-)?/, '\1').downcase
    end