== Why is this an issue? include::../description.adoc[] Code like [source,ruby] ---- if a then unless b then # Noncompliant # ... end end ---- Will be more readable as [source, ruby] ---- if a && !b then # Compliant # ... end ---- == How to fix it If merging the conditions seems to result in a more complex code, extracting the condition or part of it in a named function or variable is a better approach to fix readability. === Code examples ==== Noncompliant code example [source,ruby] ---- if !filename.nil? if File.file?(filename) || File.directory?(filename) # Noncompliant # ... end end ---- ==== Compliant solution [source,ruby] ---- def isFileOrDirectory(filename) File.file?(filename) || File.directory?(filename) end # ... if !filename.nil? && isFileOrDirectory(filename) # Compliant # ... end ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] include::../highlighting.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]