class SCSSLint::Linter::BorderZero

Enforce a particular value for empty borders.

Constants

BORDER_PROPERTIES
CONVENTION_TO_PREFERENCE

Public Instance Methods

visit_prop(node) click to toggle source
# File lib/scss_lint/linter/border_zero.rb, line 28
def visit_prop(node)
  return unless BORDER_PROPERTIES.include?(node.name.first.to_s)
  check_border(node, node.name.first.to_s, node.value.first.to_sass.strip)
end
visit_root(_node) { || ... } click to toggle source
# File lib/scss_lint/linter/border_zero.rb, line 19
def visit_root(_node)
  @preference = CONVENTION_TO_PREFERENCE[config['convention'].to_s]
  unless @preference
    raise "Invalid `convention` specified: #{config['convention']}." \
          "Must be one of [#{CONVENTION_TO_PREFERENCE.keys.join(', ')}]"
  end
  yield # Continue linting children
end

Private Instance Methods

check_border(node, border_property, border_value) click to toggle source
# File lib/scss_lint/linter/border_zero.rb, line 35
def check_border(node, border_property, border_value)
  return unless %w[0 none].include?(border_value)
  return if @preference[0] == border_value

  add_lint(node, "`#{border_property}: #{@preference[0]}` is preferred over " \
                 "`#{border_property}: #{@preference[1]}`")
end