docs/Repeated-Conditional.md
# Repeated Conditional
## Introduction
_Repeated Conditional_ is a case of
[Simulated Polymorphism](Simulated-Polymorphism.md). Basically it means you are
checking the same value throughout a single class and take decisions based on
this.
## Example
Given
```ruby
class RepeatedConditionals
attr_accessor :switch
def repeat_1
puts "Repeat 1!" if switch
end
def repeat_2
puts "Repeat 2!" if switch
end
def repeat_3
puts "Repeat 3!" if switch
end
end
```
Reek would emit the following warning:
```
test.rb -- 4 warnings:
[5, 9, 13]:RepeatedConditionals tests switch at least 3 times (RepeatedConditional)
```
If you get this warning then you are probably not using the right abstraction or even more probable, missing an additional abstraction.
## Configuration
Reek's _Repeated Conditional_ detector offers the [Basic Smell Options](Basic-Smell-Options.md), plus:
| Option | Value | Effect |
| ---------------|-------------|---------|
| `max_ifs` | integer | The maximum number of identical conditional tests permitted before Reek raises a warning. Defaults to 2. |