blob: 817c20ce460a8f40fc6a2e88fdc9fd4f13deb5fc [file] [log] [blame]
require 'sass/tree/node'
module Sass::Tree
# A static node representing an `@extend` directive.
#
# @see Sass::Tree
class ExtendNode < Node
# The parsed selector after interpolation has been resolved.
# Only set once {Tree::Visitors::Perform} has been run.
#
# @return [Selector::CommaSequence]
attr_accessor :resolved_selector
# The CSS selector to extend, interspersed with {Sass::Script::Tree::Node}s
# representing `#{}`-interpolation.
#
# @return [Array<String, Sass::Script::Tree::Node>]
attr_accessor :selector
# The extended selector source range.
#
# @return [Sass::Source::Range]
attr_accessor :selector_source_range
# Whether the `@extend` is allowed to match no selectors or not.
#
# @return [Boolean]
def optional?; @optional; end
# @param selector [Array<String, Sass::Script::Tree::Node>]
# The CSS selector to extend,
# interspersed with {Sass::Script::Tree::Node}s
# representing `#{}`-interpolation.
# @param optional [Boolean] See \{ExtendNode#optional?}
# @param selector_source_range [Sass::Source::Range] The extended selector source range.
def initialize(selector, optional, selector_source_range)
@selector = selector
@optional = optional
@selector_source_range = selector_source_range
super()
end
end
end