Class: RuboCop::Cop::RSpec::ImplicitSubject
- Extended by:
- AutoCorrector
- Includes:
- ConfigurableEnforcedStyle
- Defined in:
- lib/rubocop/cop/rspec/implicit_subject.rb
Overview
Checks for usage of implicit subject (‘is_expected` / `should`).
This cop can be configured using the ‘EnforcedStyle` option
Constant Summary collapse
- MSG_REQUIRE_EXPLICIT =
"Don't use implicit subject."
- MSG_REQUIRE_IMPLICIT =
"Don't use explicit subject."
- RESTRICT_ON_SEND =
%i[ expect is_expected should should_not ].freeze
Instance Method Summary collapse
Methods inherited from Base
inherited, #on_new_investigation
Methods included from RSpec::Language
#example?, #example_group?, #example_group_with_body?, #explicit_rspec?, #hook?, #include?, #let?, #rspec?, #shared_group?, #spec_group?, #subject?
Instance Method Details
#explicit_unnamed_subject?(node) ⇒ Object
81 82 83 |
# File 'lib/rubocop/cop/rspec/implicit_subject.rb', line 81 def_node_matcher :explicit_unnamed_subject?, <<~PATTERN (send nil? :expect (send nil? :subject)) PATTERN |
#implicit_subject?(node) ⇒ Object
86 87 88 |
# File 'lib/rubocop/cop/rspec/implicit_subject.rb', line 86 def_node_matcher :implicit_subject?, <<~PATTERN (send nil? {:should :should_not :is_expected} ...) PATTERN |
#on_send(node) ⇒ Object
90 91 92 93 94 95 96 |
# File 'lib/rubocop/cop/rspec/implicit_subject.rb', line 90 def on_send(node) return unless invalid?(node) add_offense(node) do |corrector| autocorrect(corrector, node) end end |