class SCSSLint::Linter::ChainedClasses

Checks for uses of chained classes (e.g. .foo.bar).

Public Instance Methods

visit_sequence(sequence) click to toggle source
# File lib/scss_lint/linter/chained_classes.rb, line 6
def visit_sequence(sequence)
  line_offset = 0
  sequence.members.each do |member|
    line_offset += 1 if member =~ /\n/
    next unless chained_class?(member)
    add_lint(member.line + line_offset,
             'Prefer using a distinct class over chained classes ' \
             '(e.g. .new-class over .foo.bar')
  end
end

Private Instance Methods

chained_class?(simple_sequence) click to toggle source
# File lib/scss_lint/linter/chained_classes.rb, line 19
def chained_class?(simple_sequence)
  return unless simple_sequence.is_a?(Sass::Selector::SimpleSequence)
  simple_sequence.members.count { |member| member.is_a?(Sass::Selector::Class) } >= 2
end