Class Sass::Selector::SimpleSequence
In: lib/sass/selector/simple_sequence.rb
Parent: AbstractSequence

A unseparated sequence of selectors that all apply to a single element. For example, `.foo#bar[attr=baz]` is a simple sequence of the selectors `.foo`, `bar`, and `[attr=baz]`.

Methods

base   do_extend   inspect   new   resolve_parent_refs   rest   superselector?   to_a   unify  

Attributes

members  [R]  The array of individual selectors.

@return [Array<Simple>]

Public Class methods

@param selectors [Array<Simple>] See \{members}

Public Instance methods

Returns the element or universal selector in this sequence, if it exists.

@return [Element, Universal, nil]

Non-destrucively extends this selector with the extensions specified in a hash (which should be populated via {Sass::Tree::Node#cssize}).

@overload def do_extend(extends) @param extends [{Selector::Simple => Selector::Sequence}]

  The extensions to perform on this selector

@return [Array<Sequence>] A list of selectors generated

  by extending this selector with `extends`.

@see CommaSequence#do_extend

Returns a string representation of the sequence. This is basically the selector string.

@return [String]

Resolves the {Parent} selectors within this selector by replacing them with the given parent selector, handling commas appropriately.

@param super_seq [Sequence] The parent selector sequence @return [Array<SimpleSequence>] This selector, with parent references resolved.

  This is an array because the parent selector is itself a {Sequence}

@raise [Sass::SyntaxError] If a parent selector is invalid

Returns the non-base selectors in this sequence.

@return [Set<Simple>]

Returns whether or not this selector matches all elements that the given selector matches (as well as possibly more).

@example (.foo).superselector?(.foo.bar) #=> true (.foo).superselector?(.bar) #=> false

@param sseq [SimpleSequence] @return [Boolean]

Unifies this selector with another {SimpleSequence}’s {SimpleSequence#members members array}, returning another `SimpleSequence` that matches both this selector and the input selector.

@param sels [Array<Simple>] A {SimpleSequence}’s {SimpleSequence#members members array} @return [SimpleSequence, nil] A {SimpleSequence} matching both `sels` and this selector,

  or `nil` if this is impossible (e.g. unifying `#foo` and `#bar`)

@raise [Sass::SyntaxError] If this selector cannot be unified.

  This will only ever occur when a dynamic selector,
  such as {Parent} or {Interpolation}, is used in unification.
  Since these selectors should be resolved
  by the time extension and unification happen,
  this exception will only ever be raised as a result of programmer error

[Validate]