Class Sass::Selector::Pseudo
In: lib/sass/selector.rb
Parent: Simple

A pseudoclass (e.g. `:visited`) or pseudoelement (e.g. `::first-line`) selector. It can have arguments (e.g. `:nth-child(2n+1)`).

Methods

new   to_a   unify  

Attributes

arg  [R]  The argument to the selector, or `nil` if no argument was given.

This may include SassScript nodes that will be run during resolution. Note that this should not include SassScript nodes after resolution has taken place.

@return [Array<String, Sass::Script::Node>, nil]

name  [R]  The name of the selector.

@return [Array<String, Sass::Script::Node>]

type  [R]  The type of the selector. `:class` if this is a pseudoclass selector, `:element` if it‘s a pseudoelement.

@return [Symbol]

Public Class methods

@param type [Symbol] See \{type} @param name [Array<String, Sass::Script::Node>] The name of the selector @param arg [nil, Array<String, Sass::Script::Node>] The argument to the selector,

  or nil if no argument was given

[Source]

     # File lib/sass/selector.rb, line 309
309:       def initialize(type, name, arg)
310:         @type = type
311:         @name = name
312:         @arg = arg
313:       end

Public Instance methods

@see Selector#to_a

[Source]

     # File lib/sass/selector.rb, line 316
316:       def to_a
317:         res = [@type == :class ? ":" : "::"] + @name
318:         (res << "(").concat(Haml::Util.strip_string_array(@arg)) << ")" if @arg
319:         res
320:       end

Returns `nil` if this is a pseudoclass selector and `sels` contains a pseudoclass selector different than this one.

@see Selector#unify

[Source]

     # File lib/sass/selector.rb, line 326
326:       def unify(sels)
327:         return if type == :element && sels.any? do |sel|
328:           sel.is_a?(Pseudo) && sel.type == :element &&
329:             (sel.name != self.name || sel.arg != self.arg)
330:         end
331:         super
332:       end

[Validate]