Class: RuboCop::Cop::Sorbet::ForbidMixesInClassMethods
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Sorbet::ForbidMixesInClassMethods
- Defined in:
- lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb
Overview
Check that code does not call mixes_in_class_methods from Sorbet T::Helpers.
Good:
module M
extend ActiveSupport::Concern
class_methods do
...
end
end
Bad:
module M
extend T::Helpers
module ClassMethods
...
end
mixes_in_class_methods(ClassMethods)
end
Constant Summary collapse
- MSG =
"Do not use `mixes_in_class_methods`, use `extend ActiveSupport::Concern` instead."- RESTRICT_ON_SEND =
[:mixes_in_class_methods].freeze
Instance Method Summary collapse
- #mixes_in_class_methods?(node) ⇒ Object
- #on_send(node) ⇒ Object (also: #on_csend)
Instance Method Details
#mixes_in_class_methods?(node) ⇒ Object
38 39 40 |
# File 'lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb', line 38 def_node_matcher(:mixes_in_class_methods?, <<~PATTERN) (send {self | nil? | (const (const {cbase | nil?} :T) :Helpers)} :mixes_in_class_methods ...) PATTERN |
#on_send(node) ⇒ Object Also known as: on_csend
42 43 44 |
# File 'lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb', line 42 def on_send(node) add_offense(node) if mixes_in_class_methods?(node) end |