class SCSSLint::Linter::QualifyingElement
Checks for element selectors qualifying id, classes, or attribute selectors.
Public Instance Methods
visit_simple_sequence(seq)
click to toggle source
# File lib/scss_lint/linter/qualifying_element.rb, line 6 def visit_simple_sequence(seq) return unless seq_contains_sel_class?(seq, Sass::Selector::Element) check_id(seq) unless config['allow_element_with_id'] check_class(seq) unless config['allow_element_with_class'] check_attribute(seq) unless config['allow_element_with_attribute'] end
Private Instance Methods
check_attribute(seq)
click to toggle source
# File lib/scss_lint/linter/qualifying_element.rb, line 37 def check_attribute(seq) return unless seq_contains_sel_class?(seq, Sass::Selector::Attribute) add_lint(seq.line, 'Avoid qualifying attribute selectors with an element.') end
check_class(seq)
click to toggle source
# File lib/scss_lint/linter/qualifying_element.rb, line 32 def check_class(seq) return unless seq_contains_sel_class?(seq, Sass::Selector::Class) add_lint(seq.line, 'Avoid qualifying class selectors with an element.') end
check_id(seq)
click to toggle source
# File lib/scss_lint/linter/qualifying_element.rb, line 27 def check_id(seq) return unless seq_contains_sel_class?(seq, Sass::Selector::Id) add_lint(seq.line, 'Avoid qualifying id selectors with an element.') end
seq_contains_sel_class?(seq, selector_class)
click to toggle source
Checks if a simple sequence contains a simple selector of a certain class.
@param seq [Sass::Selector::SimpleSequence] @param selector_class [Sass::Selector::Simple] @returns [Boolean]
# File lib/scss_lint/linter/qualifying_element.rb, line 21 def seq_contains_sel_class?(seq, selector_class) seq.members.any? do |simple| simple.is_a?(selector_class) end end