class SCSSLint::Linter::SingleLinePerSelector

Checks that selector sequences are split over multiple lines by comma.

Constants

MESSAGE

Public Instance Methods

visit_comma_sequence(node) click to toggle source
# File lib/scss_lint/linter/single_line_per_selector.rb, line 8
def visit_comma_sequence(node)
  return unless node.members.count > 1

  check_comma_on_own_line(node)

  node.members[1..-1].each_with_index do |sequence, index|
    check_sequence_commas(node, sequence, index)
  end
end

Private Instance Methods

check_comma_on_own_line(node) click to toggle source
# File lib/scss_lint/linter/single_line_per_selector.rb, line 20
def check_comma_on_own_line(node)
  return unless node.members[0].members[1] == "\n"
  add_lint(node, MESSAGE)
end
check_sequence_commas(node, sequence, index) click to toggle source
# File lib/scss_lint/linter/single_line_per_selector.rb, line 25
def check_sequence_commas(node, sequence, index)
  if sequence.members[0] != "\n"
    # Next sequence doesn't reside on its own line
    add_lint(node.line + index, MESSAGE)
  elsif sequence.members[1] == "\n"
    # Comma is on its own line
    add_lint(node.line + index, MESSAGE)
  end
end