Class Sass::Selector::CommaSequence
In: lib/sass/selector/comma_sequence.rb
Parent: AbstractSequence
Haml::Util Engine Color SyntaxError UnitConversionError StandardError AbstractSequence CommaSequence Sequence SimpleSequence Simple Parent Universal Class SelectorPseudoClass Id Pseudo Attribute Interpolation Element Node Operation Literal UnaryOperation StringInterpolation Funcall Interpolation Variable Lexer CssLexer Number Bool String Parser Parser CssParser EvaluationContext SassParser StaticParser CssParser Node DebugNode IfNode CommentNode ForNode PropNode MixinNode DirectiveNode VariableNode RootNode ExtendNode WarnNode WhileNode RuleNode MixinDefNode Enumerable ImportNode Merb::BootLoader MerbBootLoader Repl CSS Environment Rack StalenessChecker lib/sass/repl.rb lib/sass/css.rb lib/sass/environment.rb lib/sass/error.rb lib/sass/engine.rb lib/sass/selector/simple_sequence.rb lib/sass/selector/abstract_sequence.rb lib/sass/selector/sequence.rb lib/sass/selector/comma_sequence.rb lib/sass/selector/simple.rb lib/sass/selector.rb Selector lib/sass/script/css_parser.rb lib/sass/script/lexer.rb lib/sass/script/color.rb lib/sass/script/string.rb lib/sass/script/unary_operation.rb lib/sass/script/variable.rb lib/sass/script/funcall.rb lib/sass/script/string_interpolation.rb lib/sass/script/operation.rb lib/sass/script/bool.rb lib/sass/script/parser.rb lib/sass/script/node.rb lib/sass/script/literal.rb lib/sass/script/interpolation.rb lib/sass/script/css_lexer.rb lib/sass/script/number.rb lib/sass/script/functions.rb Functions Script lib/sass/scss/sass_parser.rb lib/sass/scss/static_parser.rb lib/sass/scss/parser.rb lib/sass/scss/css_parser.rb ScriptLexer ScriptParser RX SCSS Files Callbacks lib/sass/tree/while_node.rb lib/sass/tree/if_node.rb lib/sass/tree/mixin_def_node.rb lib/sass/tree/debug_node.rb lib/sass/tree/root_node.rb lib/sass/tree/for_node.rb lib/sass/tree/import_node.rb lib/sass/tree/prop_node.rb lib/sass/tree/node.rb lib/sass/tree/comment_node.rb lib/sass/tree/extend_node.rb lib/sass/tree/mixin_node.rb lib/sass/tree/warn_node.rb lib/sass/tree/directive_node.rb lib/sass/tree/rule_node.rb lib/sass/tree/variable_node.rb Tree lib/sass/plugin/rack.rb lib/sass/plugin/staleness_checker.rb lib/sass/plugin/merb.rb Plugin Sass dot/m_63_0.png

A comma-separated sequence of selectors.

Methods

_eql?   _hash   do_extend   inspect   new   resolve_parent_refs   to_a  

Attributes

members  [R]  The comma-separated selector sequences represented by this class.

@return [Array<Sequence>]

Public Class methods

@param seqs [Array<Sequence>] See \{members}

[Source]

    # File lib/sass/selector/comma_sequence.rb, line 12
12:       def initialize(seqs)
13:         @members = seqs
14:       end

Public Instance methods

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

@todo Link this to the reference documentation on `@extend`

  when such a thing exists.

@param extends [Haml::Util::SubsetMap{Selector::Simple => Selector::Sequence}]

  The extensions to perform on this selector

@return [CommaSequence] A copy of this selector,

  with extensions made according to `extends`

[Source]

    # File lib/sass/selector/comma_sequence.rb, line 52
52:       def do_extend(extends)
53:         CommaSequence.new(members.map {|seq| seq.do_extend(extends)}.flatten)
54:       end

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

@return [String]

[Source]

    # File lib/sass/selector/comma_sequence.rb, line 60
60:       def inspect
61:         members.map {|m| m.inspect}.join(", ")
62:       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

[Source]

    # File lib/sass/selector/comma_sequence.rb, line 23
23:       def resolve_parent_refs(super_cseq)
24:         if super_cseq.nil?
25:           if @members.any? do |sel|
26:               sel.members.any? do |sel_or_op|
27:                 sel_or_op.is_a?(SimpleSequence) && sel_or_op.members.any? {|ssel| ssel.is_a?(Parent)}
28:               end
29:             end
30:             raise Sass::SyntaxError.new("Base-level rules cannot contain the parent-selector-referencing character '&'.")
31:           end
32:           return self
33:         end
34: 
35:         CommaSequence.new(
36:           super_cseq.members.map do |super_seq|
37:             @members.map {|seq| seq.resolve_parent_refs(super_seq)}
38:           end.flatten)
39:       end

@see Simple#to_a

[Source]

    # File lib/sass/selector/comma_sequence.rb, line 65
65:       def to_a
66:         arr = Haml::Util.intersperse(@members.map {|m| m.to_a}, ", ").flatten
67:         arr.delete("\n")
68:         arr
69:       end

Private Instance methods

[Source]

    # File lib/sass/selector/comma_sequence.rb, line 77
77:       def _eql?(other)
78:         other.class == self.class && other.members.eql?(self.members)
79:       end

[Source]

    # File lib/sass/selector/comma_sequence.rb, line 73
73:       def _hash
74:         members.hash
75:       end

[Validate]