Parent

Class/Module Index [+]

Quicksearch

Sass::Selector::CommaSequence

A comma-separated sequence of selectors.

Attributes

members[R]

The comma-separated selector sequences represented by this class.

@return [Array<Sequence>]

Public Class Methods

new(seqs) click to toggle source

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

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

Public Instance Methods

do_extend(extends, parent_directives) click to toggle source

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
inspect() click to toggle source

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
resolve_parent_refs(super_cseq) click to toggle source

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
to_a() click to toggle source

@see 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

[Validate]

Generated with the Darkfish Rdoc Generator 2.