27 lines
		
	
	
		
			733 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			733 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
module HamlLint
 | 
						|
  # Bans the usage of “•” (bullet) in HTML/HAML in favor of “·” (middle dot) in anything that will end up as a text node. (including string literals in Ruby code)
 | 
						|
  class Linter::MiddleDot < Linter
 | 
						|
    include LinterRegistry
 | 
						|
 | 
						|
    # rubocop:disable Style/MiddleDot
 | 
						|
    BULLET = '•'
 | 
						|
    # rubocop:enable Style/MiddleDot
 | 
						|
    MIDDLE_DOT = '·'
 | 
						|
    MESSAGE = "Use '#{MIDDLE_DOT}' (middle dot) instead of '#{BULLET}' (bullet)".freeze
 | 
						|
 | 
						|
    def visit_plain(node)
 | 
						|
      return unless node.text.include?(BULLET)
 | 
						|
 | 
						|
      record_lint(node, MESSAGE)
 | 
						|
    end
 | 
						|
 | 
						|
    def visit_script(node)
 | 
						|
      return unless node.script.include?(BULLET)
 | 
						|
 | 
						|
      record_lint(node, MESSAGE)
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |