| 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)`).
| 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] |
@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
# File lib/sass/selector.rb, line 309
309: def initialize(type, name, arg)
310: @type = type
311: @name = name
312: @arg = arg
313: end
@see Selector#to_a
# 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
# 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