Class: RuboCop::Cop::RequireRequiredForInteractorSupport
- Inherits:
-
RuboCop::Cop
- Object
- RuboCop::Cop
- RuboCop::Cop::RequireRequiredForInteractorSupport
- Defined in:
- lib/interactor_support/rubocop/cop/require_required_for_interactor_support.rb
Constant Summary collapse
- MSG =
'Classes including `InteractorSupport` or `InteractorSupport::Validations` must invoke `required`.'
Instance Method Summary collapse
Instance Method Details
#includes_support?(node) ⇒ Boolean
12 13 14 15 16 17 |
# File 'lib/interactor_support/rubocop/cop/require_required_for_interactor_support.rb', line 12 def includes_support?(node) node.to_s =~ /InteractorSupport/ && ( node.to_s =~ /\(const nil :InteractorSupport\) :Validations\)/ || (node.to_s =~ /\(const nil :InteractorSupport\)/ && node.to_s !~ /:RequestObject/) ) end |
#on_class(node) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/interactor_support/rubocop/cop/require_required_for_interactor_support.rb', line 19 def on_class(node) return unless includes_support?(node) required_called = calls_required?(node.body) || node.body&.children&.any? do |child| calls_required?(child) end add_offense(node, message: MSG) unless required_called end |