The global value false is the only instance of class FalseClass and represents a logically false value in boolean expressions. The class provides operators allowing false to participate correctly in logical expressions.
And—Returns false. obj is always evaluated as it is the argument to a method call—there is no short-circuit evaluation in this case.
/* * call-seq: * false & obj => false * nil & obj => false * * And---Returns <code>false</code>. <i>obj</i> is always * evaluated as it is the argument to a method call---there is no * short-circuit evaluation in this case. */ static VALUE false_and(obj, obj2) VALUE obj, obj2; { return Qfalse; }
Exclusive Or—If obj is nil or false, returns false; otherwise, returns true.
/* * call-seq: * false ^ obj => true or false * nil ^ obj => true or false * * Exclusive Or---If <i>obj</i> is <code>nil</code> or * <code>false</code>, returns <code>false</code>; otherwise, returns * <code>true</code>. * */ static VALUE false_xor(obj, obj2) VALUE obj, obj2; { return RTEST(obj2)?Qtrue:Qfalse; }
‘nuf said…
/* * call-seq: * false.to_s => "false" * * 'nuf said... */ static VALUE false_to_s(obj) VALUE obj; { return rb_str_new2("false"); }
Or—Returns false if obj is nil or false; true otherwise.
/* * call-seq: * false | obj => true or false * nil | obj => true or false * * Or---Returns <code>false</code> if <i>obj</i> is * <code>nil</code> or <code>false</code>; <code>true</code> otherwise. */ static VALUE false_or(obj, obj2) VALUE obj, obj2; { return RTEST(obj2)?Qtrue:Qfalse; }