class SCSSLint::Linter::UnnecessaryMantissa

Checks for the unnecessary inclusion of a zero-value mantissa in numbers. (e.g. `4.0` could be written as just `4`)

Constants

MESSAGE_FORMAT
REAL_NUMBER_REGEX

Public Instance Methods

visit_script_number(node) click to toggle source
# File lib/scss_lint/linter/unnecessary_mantissa.rb, line 21
def visit_script_number(node)
  return unless match = REAL_NUMBER_REGEX.match(source_from_range(node.source_range))
  return unless unnecessary_mantissa?(match[:mantissa])

  add_lint(node, MESSAGE_FORMAT % [match[:number], match[:integer],
                                   match[:units]])
end
visit_script_string(node) click to toggle source
# File lib/scss_lint/linter/unnecessary_mantissa.rb, line 9
def visit_script_string(node)
  return unless node.type == :identifier
  return if node.value.match?(/^'|"/)
  return if url_literal?(node)

  node.value.scan(REAL_NUMBER_REGEX) do |number, integer, mantissa, units|
    if unnecessary_mantissa?(mantissa)
      add_lint(node, MESSAGE_FORMAT % [number, integer, units])
    end
  end
end

Private Instance Methods

unnecessary_mantissa?(mantissa) click to toggle source
# File lib/scss_lint/linter/unnecessary_mantissa.rb, line 42
def unnecessary_mantissa?(mantissa)
  mantissa !~ /[^0]/
end
url_literal?(node) click to toggle source
# File lib/scss_lint/linter/unnecessary_mantissa.rb, line 46
def url_literal?(node)
  node.value.start_with?('url(')
end