Sha256: d64bc2fdb558ffd959c1da21ecee00b578614bbb0b8e5c600aa8e76dae2a4e1c
Contents?: true
Size: 1.65 KB
Versions: 16
Compression:
Stored size: 1.65 KB
Contents
# frozen_string_literal: true # rubocop:disable Style/AsciiComments module RuboCop module Cop module Style # This cop checks for non-ascii (non-English) characters # in comments. You could set an array of allowed non-ascii chars in # `AllowedChars` attribute (copyright notice "©" by default). # # @example # # bad # # Translates from English to 日本語。 # # # good # # Translates from English to Japanese class AsciiComments < Base include RangeHelp MSG = 'Use only ascii symbols in comments.' def on_new_investigation processed_source.comments.each do |comment| next if comment.text.ascii_only? next if only_allowed_non_ascii_chars?(comment.text) add_offense(first_offense_range(comment)) end end private def first_offense_range(comment) expression = comment.loc.expression first_offense = first_non_ascii_chars(comment.text) start_position = expression.begin_pos + comment.text.index(first_offense) end_position = start_position + first_offense.length range_between(start_position, end_position) end def first_non_ascii_chars(string) string.match(/[^[:ascii:]]+/).to_s end def only_allowed_non_ascii_chars?(string) non_ascii = string.scan(/[^[:ascii:]]/) (non_ascii - allowed_non_ascii_chars).empty? end def allowed_non_ascii_chars cop_config['AllowedChars'] || [] end end end end end # rubocop:enable Style/AsciiComments
Version data entries
16 entries across 16 versions & 3 rubygems