Class: RuboCop::Cop::Sorbet::ValidSigil

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector
Defined in:
lib/rubocop/cop/sorbet/sigils/valid_sigil.rb

Overview

Checks that every Ruby file contains a valid Sorbet sigil. Adapted from: https://gist.github.com/clarkdave/85aca4e16f33fd52aceb6a0a29936e52

Options:

  • RequireSigilOnAllFiles: make offense if the Sorbet typed is not found in the file (default: false)
  • SuggestedStrictness: Sorbet strictness level suggested in offense messages (default: 'false')
  • MinimumStrictness: If set, make offense if the strictness level in the file is below this one
  • ExactStrictness: If set, make offense if the strictness level in the file is different than this one

If an ExactStrictness level is specified, it will be used in offense messages and autocorrect. If a SuggestedStrictness level is specified, it will be used in autocorrect. Otherwise, if a MinimumStrictness level is specified, it will be used in offense messages and autocorrect.

Direct Known Subclasses

EnforceSigilOrder, EnforceSingleSigil, HasSigil

Instance Method Summary collapse

Instance Method Details

#on_new_investigationObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rubocop/cop/sorbet/sigils/valid_sigil.rb', line 24

def on_new_investigation
  return if processed_source.tokens.empty?

  sigil = extract_sigil(processed_source)
  return unless check_sigil_present(sigil)

  strictness = extract_strictness(sigil)
  check_double_commented_sigil(sigil, strictness)

  return unless check_strictness_not_empty(sigil, strictness)
  return unless check_strictness_valid(sigil, strictness)

  nil unless check_strictness_level(sigil, strictness)
end