A comma-separated sequence of selectors.
The comma-separated selector sequences represented by this class.
@return [Array<Sequence>]
@param seqs [Array<Sequence>] See {#members}
# File lib/sass/selector/comma_sequence.rb, line 12 def initialize(seqs) @members = seqs end
Non-destrucively extends this selector with the extensions specified in a hash (which should come from {Sass::Tree::Visitors::Cssize}).
@todo Link this to the reference documentation on `@extend`
when such a thing exists.
@param extends [Sass::Util::SubsetMap{Selector::Simple =>
Sass::Tree::Visitors::Cssize::Extend}] The extensions to perform on this selector
@param parent_directives [Array<Sass::Tree::DirectiveNode>]
The directives containing this selector.
@return [CommaSequence] A copy of this selector,
with extensions made according to `extends`
# File lib/sass/selector/comma_sequence.rb, line 54 def do_extend(extends, parent_directives) CommaSequence.new(members.map do |seq| seq.do_extend(extends, parent_directives) end.flatten) end
Returns a string representation of the sequence. This is basically the selector string.
@return [String]
# File lib/sass/selector/comma_sequence.rb, line 64 def inspect members.map {|m| m.inspect}.join(", ") end
Resolves the {Parent} selectors within this selector by replacing them with the given parent selector, handling commas appropriately.
@param super_cseq [CommaSequence] The parent selector @return [CommaSequence] This selector, with parent references resolved @raise [Sass::SyntaxError] If a parent selector is invalid
# File lib/sass/selector/comma_sequence.rb, line 23 def resolve_parent_refs(super_cseq) 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( super_cseq.members.map do |super_seq| @members.map {|seq| seq.resolve_parent_refs(super_seq)} end.flatten) end
@see Sass::Selector::Simple#to_a
# File lib/sass/selector/comma_sequence.rb, line 69 def to_a arr = Sass::Util.intersperse(@members.map {|m| m.to_a}, ", ").flatten arr.delete("\n") arr end