Class: Sass::Selector::AbstractSequence

Inherits:
Object
  • Object
show all
Defined in:
.ruby-sass/lib/sass/selector/abstract_sequence.rb

Overview

The abstract parent class of the various selector sequence classes.

All subclasses should implement a `members` method that returns an array of object that respond to `#line=` and `#filename=`, as well as a `to_s` method that returns the string representation of the selector.

Direct Known Subclasses

CommaSequence, Sequence, SimpleSequence

Direct Known Subclasses

CommaSequence, Sequence, SimpleSequence

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Instance Attribute Details

#filenameString?

The name of the file in which this selector was declared.

Returns:

  • (String, nil)


17
18
19
# File '.ruby-sass/lib/sass/selector/abstract_sequence.rb', line 17

def filename
  @filename
end

#lineInteger

The line of the Sass template on which this selector was declared.

Returns:

  • (Integer)


12
13
14
# File '.ruby-sass/lib/sass/selector/abstract_sequence.rb', line 12

def line
  @line
end

Instance Method Details

#eql?(other) ⇒ Boolean Also known as: ==

Checks equality between this and another object.

Subclasses should define `#_eql?` rather than overriding this method, which handles checking class equality and hash equality.

Parameters:

  • other (Object)

    The object to test equality against

Returns:

  • (Boolean)

    Whether or not this is equal to `other`



57
58
59
# File '.ruby-sass/lib/sass/selector/abstract_sequence.rb', line 57

def eql?(other)
  other.class == self.class && other.hash == hash && _eql?(other)
end

#hashInteger

Returns a hash code for this sequence.

Subclasses should define `#_hash` rather than overriding this method, which automatically handles memoizing the result.

Returns:

  • (Integer)


46
47
48
# File '.ruby-sass/lib/sass/selector/abstract_sequence.rb', line 46

def hash
  @_hash ||= _hash
end

#invisible?Boolean

Whether or not this selector should be hidden due to containing a placeholder.

Returns:

  • (Boolean)


64
65
66
67
68
69
# File '.ruby-sass/lib/sass/selector/abstract_sequence.rb', line 64

def invisible?
  @invisible ||= members.any? do |m|
    next m.invisible? if m.is_a?(AbstractSequence) || m.is_a?(Pseudo)
    m.is_a?(Placeholder)
  end
end

#specificityInteger, Range

Returns the specificity of the selector.

The base is given by SPECIFICITY_BASE. This can be a number or a range representing possible specificities.

Returns:

  • (Integer, Range)


88
89
90
# File '.ruby-sass/lib/sass/selector/abstract_sequence.rb', line 88

def specificity
  _specificity(members)
end

#to_s(opts = {}) ⇒ String

Returns the selector string.

Parameters:

  • opts (Hash) (defaults to: {})

    rendering options.

  • placeholders (Hash)

    a customizable set of options

Options Hash (opts):

  • :style (Symbol)

    The css rendering style.

Returns:

  • (String)


78
79
80
# File '.ruby-sass/lib/sass/selector/abstract_sequence.rb', line 78

def to_s(opts = {})
  Sass::Util.abstract(self)
end