class RuboCop::Cop::Style::RedundantConditional
x != y
# good
x == y ? false : true
# bad
x == y
# good
end
false
else
true
if x == y
# bad
x == y ? true : false
# bad
@example
This cop checks for redundant returning of true/false in conditionals.
def autocorrect(node)
def autocorrect(node) lambda do |corrector| corrector.replace(node.loc.expression, replacement_condition(node)) end end
def configured_indentation_width
def configured_indentation_width super || 2 end
def indented_else_node(expression, node)
def indented_else_node(expression, node) "else\n#{indentation(node)}#{expression}" end
def invert_expression?(node)
def invert_expression?(node) ( (node.if? || node.elsif? || node.ternary?) && redundant_condition_inverted?(node) ) || ( node.unless? && redundant_condition?(node) ) end
def message(node)
def message(node) replacement = replacement_condition(node) msg = node.elsif? ? "\n#{replacement}" : replacement format(MSG, msg: msg) end
def offense?(node)
def offense?(node) return if node.modifier_form? redundant_condition?(node) || redundant_condition_inverted?(node) end
def on_if(node)
def on_if(node) return unless offense?(node) add_offense(node) end
def replacement_condition(node)
def replacement_condition(node) condition = node.condition.source expression = invert_expression?(node) ? "!(#{condition})" : condition node.elsif? ? indented_else_node(expression, node) : expression end