Module: RuboCop::Cop::NegativeConditional
Overview
Some common code shared between ‘NegatedIf` and `NegatedWhile` cops.
Constant Summary
collapse
- MSG =
'Favor `%<inverse>s` over `%<current>s` for ' \
'negative conditions.'.freeze
Instance Method Summary
collapse
def_node_matcher, def_node_search, node_search, node_search_all, node_search_body, node_search_first
Instance Method Details
#check_negative_conditional(node) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/rubocop/cop/mixin/negative_conditional.rb', line 16
def check_negative_conditional(node)
condition = node.condition
return if empty_condition?(condition)
condition = condition.children.last while condition.begin_type?
return unless single_negative?(condition)
return if node.if_type? && node.else?
add_offense(node)
end
|
#negated_condition(node) ⇒ Object
39
40
41
42
43
|
# File 'lib/rubocop/cop/mixin/negative_conditional.rb', line 39
def negated_condition(node)
condition = node.condition
condition = condition.children.first while condition.begin_type?
condition
end
|
#negative_conditional_corrector(node) ⇒ Object
29
30
31
32
33
34
35
36
37
|
# File 'lib/rubocop/cop/mixin/negative_conditional.rb', line 29
def negative_conditional_corrector(node)
condition = negated_condition(node)
lambda do |corrector|
corrector.replace(node.loc.keyword, node.inverse_keyword)
corrector.replace(condition.source_range,
condition.children.first.source)
end
end
|