Class: RuboCop::Cop::RSpec::RepeatedIncludeExample
- Inherits:
-
Base
- Object
- Base
- Base
- RuboCop::Cop::RSpec::RepeatedIncludeExample
show all
- Defined in:
- lib/rubocop/cop/rspec/repeated_include_example.rb
Overview
Check for repeated include of shared examples.
Constant Summary
collapse
- MSG =
'Repeated include of shared_examples %<name>s ' \
'on line(s) %<repeat>s'
Instance Method Summary
collapse
Methods inherited from Base
inherited, #on_new_investigation
#block_pattern, #send_pattern
#example?, #example_group?, #example_group_with_body?, #hook?, #include?, #let?, #rspec?, #shared_group?, #spec_group?, #subject?
Instance Method Details
#include_examples?(node) ⇒ Object
59
60
|
# File 'lib/rubocop/cop/rspec/repeated_include_example.rb', line 59
def_node_matcher :include_examples?,
send_pattern('#Includes.examples')
|
#on_begin(node) ⇒ Object
67
68
69
70
71
72
73
|
# File 'lib/rubocop/cop/rspec/repeated_include_example.rb', line 67
def on_begin(node)
return unless several_include_examples?(node)
repeated_include_examples(node).each do |item, repeats|
add_offense(item, message: message(item, repeats))
end
end
|
#several_include_examples?(node) ⇒ Object
54
55
56
|
# File 'lib/rubocop/cop/rspec/repeated_include_example.rb', line 54
def_node_matcher :several_include_examples?, <<-PATTERN
(begin <#include_examples? #include_examples? ...>)
PATTERN
|
#shared_examples_name(node) ⇒ Object
63
64
65
|
# File 'lib/rubocop/cop/rspec/repeated_include_example.rb', line 63
def_node_matcher :shared_examples_name, <<-PATTERN
(send _ #Includes.examples $_ ...)
PATTERN
|