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;
}