Class: RuboCop::Cop::RSpec::SharedExamples
- Extended by:
- AutoCorrector
- Includes:
- ConfigurableEnforcedStyle
- Defined in:
- lib/rubocop/cop/rspec/shared_examples.rb
Overview
Checks for consistent style for shared example names.
Enforces either string or symbol for shared example names.
This cop can be configured using the EnforcedStyle option
Defined Under Namespace
Classes: StringChecker, SymbolChecker
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
#on_send(node) ⇒ Object
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/rubocop/cop/rspec/shared_examples.rb', line 54 def on_send(node) shared_examples(node) do |ast_node| next unless offense?(ast_node) checker = new_checker(ast_node) add_offense(ast_node, message: checker.) do |corrector| corrector.replace(ast_node, checker.preferred_style) end end end |
#shared_examples(node) ⇒ Object
47 48 49 50 51 52 |
# File 'lib/rubocop/cop/rspec/shared_examples.rb', line 47 def_node_matcher :shared_examples, <<~PATTERN { (send #rspec? #SharedGroups.all $_ ...) (send nil? #Includes.all $_ ...) } PATTERN |