12345678910111213141516171819202122232425262728293031 |
- # frozen_string_literal: true
- module RuboCop
- module Cop
- module Style
- # Bans the usage of “•” (bullet) in HTML/HAML in favor of “·” (middle dot) in string literals
- class MiddleDot < Base
- extend AutoCorrector
- extend Util
- # rubocop:disable Style/MiddleDot
- BULLET = '•'
- # rubocop:enable Style/MiddleDot
- MIDDLE_DOT = '·'
- MESSAGE = "Use '#{MIDDLE_DOT}' (middle dot) instead of '#{BULLET}' (bullet)".freeze
- def on_str(node)
- # Constants like __FILE__ are handled as strings,
- # but don't respond to begin.
- return unless node.loc.respond_to?(:begin) && node.loc.begin
- return unless node.value.include?(BULLET)
- add_offense(node, message: MESSAGE) do |corrector|
- corrector.replace(node, node.source.gsub(BULLET, MIDDLE_DOT))
- end
- end
- end
- end
- end
- end
|