class RuboCop::Cop::InternalAffairs::ExampleDescription
Checks that RSpec
examples that use `expects_offense` or `expects_no_offenses` do not have conflicting descriptions.
@example
# bad it 'does not register an offense' do expect_offense('...') end it 'registers an offense' do expect_no_offenses('...') end # good it 'registers an offense' do expect_offense('...') end it 'does not register an offense' do expect_no_offenses('...') end
Constants
- EXPECT_CORRECTION_INCORRECT_DESCRIPTIONS
- EXPECT_NO_CORRECTIONS_INCORRECT_DESCRIPTIONS
- EXPECT_NO_OFFENSES_INCORRECT_DESCRIPTIONS
- EXPECT_OFFENSE_INCORRECT_DESCRIPTIONS
- MSG
- RESTRICT_ON_SEND
Attributes
descriptions[RW]
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/internal_affairs/example_description.rb, line 67 def on_send(node) parent = node.each_ancestor(:block).first return unless parent && (description = offense_example?(parent)) method_name = node.method_name message = format(MSG, method_name: method_name) regexp_group = self.class.const_get("#{method_name}_incorrect_descriptions".upcase) check_description(description, regexp_group, message) end
Private Instance Methods
check_description(description, regexps, message)
click to toggle source
# File lib/rubocop/cop/internal_affairs/example_description.rb, line 80 def check_description(description, regexps, message) return unless regexps.any? { |regexp| regexp.match?(string_contents(description)) } add_offense(description, message: message) end
string_contents(node)
click to toggle source
# File lib/rubocop/cop/internal_affairs/example_description.rb, line 86 def string_contents(node) node.str_type? ? node.value : node.source end