class RuboCop::Cop::Style::Encoding

This cop checks ensures source files have no utf-8 encoding comments.

Constants

ENCODING_PATTERN
MSG_UNNECESSARY
SHEBANG

Public Instance Methods

autocorrect(range) click to toggle source
# File lib/rubocop/cop/style/encoding.rb, line 22
def autocorrect(range)
  lambda do |corrector|
    corrector.remove(range_with_surrounding_space(range, :right))
  end
end
investigate(processed_source) click to toggle source
# File lib/rubocop/cop/style/encoding.rb, line 12
def investigate(processed_source)
  return if processed_source.buffer.source.empty?

  line_number = encoding_line_number(processed_source)
  return unless (@message = offense(processed_source, line_number))

  range = processed_source.buffer.line_range(line_number + 1)
  add_offense(range, location: range, message: @message)
end

Private Instance Methods

encoding_line_number(processed_source) click to toggle source
# File lib/rubocop/cop/style/encoding.rb, line 40
def encoding_line_number(processed_source)
  line_number = 0
  line_number += 1 if processed_source[line_number].start_with?(SHEBANG)
  line_number
end
encoding_omitable?(line) click to toggle source
# File lib/rubocop/cop/style/encoding.rb, line 36
def encoding_omitable?(line)
  line =~ ENCODING_PATTERN
end
offense(processed_source, line_number) click to toggle source
# File lib/rubocop/cop/style/encoding.rb, line 30
def offense(processed_source, line_number)
  line = processed_source[line_number]

  MSG_UNNECESSARY if encoding_omitable?(line)
end