rspec/rules/S126/ruby/rule.adoc

33 lines
1021 B
Plaintext
Raw Normal View History

2020-12-23 14:59:06 +01:00
This rule applies whenever an ``if`` statement is followed by one or more ``elsif`` statements; the final ``elsif`` should be followed by an ``else`` statement.
2020-06-30 10:16:44 +02:00
2020-12-23 14:59:06 +01:00
The requirement for a final ``else`` statement is defensive programming.
The ``else`` statement should either take appropriate action or contain a suitable comment as to why no action is taken. This is consistent with the requirement to have a final ``else`` clause in a ``case`` statement.
2020-06-30 10:16:44 +02:00
== Noncompliant Code Example
----
if x == 0
doSomething
elsif x == 1
doSomethingElse
end
----
== Compliant Solution
----
if x == 0
doSomething
elsif x == 1
doSomethingElse
else
raise 'An error has occured'
end
----
== Exceptions
2020-12-23 14:59:06 +01:00
When all branches of an ``if``-``else if`` end with ``return``, ``break`` or ``throw``, the code that comes after the ``if`` implicitly behaves as if it was in an ``else`` clause. This rule will therefore ignore that case.
2020-06-30 10:16:44 +02:00
include::../see.adoc[]