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]
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]
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