class RuboCop::Cop::Style::RedundantConditional
Checks for redundant returning of true/false in conditionals.
@example
# bad x == y ? true : false # bad if x == y true else false end # good x == y # bad x == y ? false : true # good x != y
Constants
- COMPARISON_OPERATOR_MATCHER
- MSG
Public Instance Methods
on_if(node)
click to toggle source
# File lib/rubocop/cop/style/redundant_conditional.rb, line 36 def on_if(node) return unless offense?(node) message = message(node) add_offense(node, message: message) do |corrector| corrector.replace(node, replacement_condition(node)) end end
Private Instance Methods
indented_else_node(expression, node)
click to toggle source
# File lib/rubocop/cop/style/redundant_conditional.rb, line 78 def indented_else_node(expression, node) "else\n#{indentation(node)}#{expression}" end
message(node)
click to toggle source
# File lib/rubocop/cop/style/redundant_conditional.rb, line 48 def message(node) replacement = replacement_condition(node) msg = node.elsif? ? "\n#{replacement}" : replacement format(MSG, msg: msg) end
offense?(node)
click to toggle source
# File lib/rubocop/cop/style/redundant_conditional.rb, line 65 def offense?(node) return false if node.modifier_form? redundant_condition?(node) || redundant_condition_inverted?(node) end
replacement_condition(node)
click to toggle source
# File lib/rubocop/cop/style/redundant_conditional.rb, line 71 def replacement_condition(node) condition = node.condition.source expression = redundant_condition_inverted?(node) ? "!(#{condition})" : condition node.elsif? ? indented_else_node(expression, node) : expression end