demarches-normaliennes/lib/linters/application_name_linter.rb
2024-08-22 09:26:48 +02:00

50 lines
973 B
Ruby

# frozen_string_literal: true
if defined?(HamlLint)
module HamlLint
class Linter::ApplicationNameLinter < Linter
include LinterRegistry
FORBIDDEN = 'demarches.gouv.fr'
REPLACEMENT = "APPLICATION_NAME"
MSG = 'Hardcoding %s is forbidden, use %s instead'
def visit_tag(node)
check(node)
end
def visit_script(node)
check(node)
end
def visit_silent_script(node)
check(node)
end
def visit_plain(node)
check(node)
end
def visit_comment(node)
check(node)
end
def visit_haml_comment(node)
check(node)
end
def check(node)
line = line_text_for_node(node)
if line.downcase.include?(FORBIDDEN)
record_lint(node, format(MSG, FORBIDDEN, REPLACEMENT))
end
end
private
def line_text_for_node(node)
document.source_lines[node.line - 1]
end
end
end
end