class Sass::Selector::CommaSequence
A comma-separated sequence of selectors.
def _eql?(other)
def _eql?(other) other.class == self.class && other.members.eql?(members) end
def _hash
def _hash members.hash end
def do_extend(extends, parent_directives)
-
(CommaSequence)
- A copy of this selector,
Parameters:
-
parent_directives
(Array
) -- -
extends
(Sass::Util::SubsetMap{Selector::Simple =>
) -- xtends [Sass::Util::SubsetMap{Selector::Simple =>
Other tags:
- Todo: - Link this to the reference documentation on `@extend`
def do_extend(extends, parent_directives) CommaSequence.new(members.map do |seq| extended = seq.do_extend(extends, parent_directives) # First Law of Extend: the result of extending a selector should # always contain the base selector. # # See https://github.com/nex3/sass/issues/324. extended.unshift seq unless seq.has_placeholder? || extended.include?(seq) extended end.flatten) end
def initialize(seqs)
-
seqs
(Array
) -- See \{#members}
def initialize(seqs) @members = seqs end
def inspect
-
(String)
-
def inspect members.map {|m| m.inspect}.join(", ") end
def resolve_parent_refs(super_cseq, implicit_parent = true)
-
(Sass::SyntaxError)
- If a parent selector is invalid
Returns:
-
(CommaSequence)
- This selector, with parent references resolved
Parameters:
-
implicit_parent
(Boolean
) -- Whether the the parent -
super_cseq
(CommaSequence
) -- The parent selector
def resolve_parent_refs(super_cseq, implicit_parent = true) if super_cseq.nil? if @members.any? do |sel| sel.members.any? do |sel_or_op| sel_or_op.is_a?(SimpleSequence) && sel_or_op.members.any? {|ssel| ssel.is_a?(Parent)} end end raise Sass::SyntaxError.new( "Base-level rules cannot contain the parent-selector-referencing character '&'.") end return self end CommaSequence.new(Sass::Util.flatten_vertically(@members.map do |seq| seq.resolve_parent_refs(super_cseq, implicit_parent).members end)) end
def to_a
- See: Simple#to_a -
def to_a arr = Sass::Util.intersperse(@members.map {|m| m.to_a}, ", ").flatten Sass::Util.replace_subseq(arr, [", ", "\n"], [",\n"]) end