@@ -1025,6 +1025,7 @@ <h1>Ruby Style Guide</h1>
10251025< li > < a href ="#array-coercion "> Array Coercion</ a > </ li >
10261026< li > < a href ="#ranges-or-between "> Ranges or < code > between</ code > </ a > </ li >
10271027< li > < a href ="#predicate-methods "> Predicate Methods</ a > </ li >
1028+ < li > < a href ="#bitwise-predicate-methods "> Bitwise Predicate Methods</ a > </ li >
10281029< li > < a href ="#no-cryptic-perlisms "> No Cryptic Perlisms</ a > </ li >
10291030< li > < a href ="#use-require_relative-whenever-possible "> Use < code > require_relative</ code > whenever possible</ a > </ li >
10301031< li > < a href ="#always-warn "> Always Warn</ a > </ li >
@@ -7958,6 +7959,34 @@ <h3 id="predicate-methods"><a class="anchor" href="#predicate-methods"></a><a cl
79587959</ div >
79597960</ div >
79607961< div class ="sect2 ">
7962+ < h3 id ="bitwise-predicate-methods "> < a class ="anchor " href ="#bitwise-predicate-methods "> </ a > < a class ="link " href ="#bitwise-predicate-methods "> Bitwise Predicate Methods</ a > </ h3 >
7963+ < div class ="paragraph ">
7964+ < p > Prefer bitwise predicate methods over direct comparison operations.</ p >
7965+ </ div >
7966+ < div class ="listingblock ">
7967+ < div class ="content ">
7968+ < pre class ="rouge highlight "> < code data-lang ="ruby "> < span class ="c1 "> # bad - checks any set bits</ span >
7969+ < span class ="p "> (</ span > < span class ="n "> variable</ span > < span class ="o "> &</ span > < span class ="n "> flags</ span > < span class ="p "> ).</ span > < span class ="nf "> positive?</ span >
7970+
7971+ < span class ="c1 "> # good</ span >
7972+ < span class ="n "> variable</ span > < span class ="p "> .</ span > < span class ="nf "> anybits?</ span > < span class ="p "> (</ span > < span class ="n "> flags</ span > < span class ="p "> )</ span >
7973+
7974+ < span class ="c1 "> # bad - checks all set bits</ span >
7975+ < span class ="p "> (</ span > < span class ="n "> variable</ span > < span class ="o "> &</ span > < span class ="n "> flags</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="n "> flags</ span >
7976+
7977+ < span class ="c1 "> # good</ span >
7978+ < span class ="n "> variable</ span > < span class ="p "> .</ span > < span class ="nf "> allbits?</ span > < span class ="p "> (</ span > < span class ="n "> flags</ span > < span class ="p "> )</ span >
7979+
7980+ < span class ="c1 "> # bad - checks no set bits</ span >
7981+ < span class ="p "> (</ span > < span class ="n "> variable</ span > < span class ="o "> &</ span > < span class ="n "> flags</ span > < span class ="p "> ).</ span > < span class ="nf "> zero?</ span >
7982+ < span class ="p "> (</ span > < span class ="n "> variable</ span > < span class ="o "> &</ span > < span class ="n "> flags</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="mi "> 0</ span >
7983+
7984+ < span class ="c1 "> # good</ span >
7985+ < span class ="n "> variable</ span > < span class ="p "> .</ span > < span class ="nf "> nobits?</ span > < span class ="p "> (</ span > < span class ="n "> flags</ span > < span class ="p "> )</ span > </ code > </ pre >
7986+ </ div >
7987+ </ div >
7988+ </ div >
7989+ < div class ="sect2 ">
79617990< h3 id ="no-cryptic-perlisms "> < a class ="anchor " href ="#no-cryptic-perlisms "> </ a > < a class ="link " href ="#no-cryptic-perlisms "> No Cryptic Perlisms</ a > </ h3 >
79627991< div class ="paragraph ">
79637992< p > Avoid using Perl-style special variables (like < code > $:</ code > , < code > $;</ code > , etc).
@@ -8329,7 +8358,7 @@ <h2 id="spread-the-word"><a class="anchor" href="#spread-the-word"></a><a class=
83298358</ div >
83308359< div id ="footer ">
83318360< div id ="footer-text ">
8332- Last updated 2024-07-06 05:08:57 UTC
8361+ Last updated 2024-07-18 06:13:35 UTC
83338362</ div >
83348363</ div >
83358364</ body >
0 commit comments