Class: RuboCop::Cop::RSpec::InstanceVariable
- Inherits:
-
RuboCop::Cop
- Object
- RuboCop::Cop
- RuboCop::Cop::RSpec::InstanceVariable
- Includes:
- RSpec::Language, RSpec::SpecOnly
- Defined in:
- lib/rubocop/cop/rspec/instance_variable.rb
Overview
Checks for instance variable usage in specs.
This cop can be configured with the option ‘AssignmentOnly` which will configure the cop to only register offenses on instance variable usage if the instance variable is also assigned within the spec
Constant Summary collapse
- MESSAGE =
'Use `let` instead of an instance variable'.freeze
- EXAMPLE_GROUP_METHODS =
ExampleGroups::ALL + SharedGroups::ALL
Constants included from RSpec::SpecOnly
RSpec::SpecOnly::DEFAULT_CONFIGURATION
Constants included from RSpec::Language
Instance Method Summary collapse
Methods included from RSpec::SpecOnly
Instance Method Details
#on_block(node) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/rubocop/cop/rspec/instance_variable.rb', line 64 def on_block(node) return unless spec_group?(node) ivar_usage(node) do |ivar, name| return if assignment_only? && !ivar_assigned?(node, name) add_offense(ivar, :expression, MESSAGE) end end |