Sometimes it is worth the effort of going through and changing the logic elsewhere to keep the boolean positive, sometimes that would be too much effort to retest at the time.
Another option I like, when I have a config object interpreting things so I'm reading doing `if (config.IsWhateverThatThingIsEnabled)` then I can just have paired properties to pick from when I want to check IsEnabled or IsDisabled.
I've come across code where there is an overide for an option to disable something and the naming plus the logical not really make you think about what is happening…
if (!OverrideDisabledOptionToBlockAction) {}But RuboCop detects `!!something`, and I actually like that idiom, because I prefer to convert into true boolean types before passing them to a method, since it makes the intention clear in the code.