Class: RuboCop::Cop::Lint::UnlessMultipleConditions

Inherits:
RuboCop::Cop
  • Object
show all
Defined in:
lib/rubocop/cop/lint/unless_multiple_conditions.rb

Overview

This cop checks that ‘unless` is not used with multiple conditions. In general, using multiple conditions with `unless` reduces readability.

Examples:

# bad
unless foo && bar
  something
end

# bad
unless foo || bar
  something
end

# good
if !foo || !bar
  something
end

# good
if !foo && !bar
  something
end

Constant Summary collapse

MSG =
"Avoid using `unless` with multiple conditions."

Instance Method Summary collapse

Instance Method Details

#on_if(node) ⇒ Object



34
35
36
37
38
39
# File 'lib/rubocop/cop/lint/unless_multiple_conditions.rb', line 34

def on_if(node)
  return unless node.unless?

  add_offense(node.condition) if node.condition.and_type? ||
                                 node.condition.or_type?
end