1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
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
|