The global value true is the only instance of class TrueClass and represents a logically true value in boolean expressions. The class provides operators allowing true to be used in logical expressions.
And—Returns false if obj is nil or false, true otherwise.
static VALUE
true_and(VALUE obj, VALUE obj2)
{
return RTEST(obj2)?Qtrue:Qfalse;
}
Exclusive Or—Returns true if obj is nil or false, false otherwise.
static VALUE
true_xor(VALUE obj, VALUE obj2)
{
return RTEST(obj2)?Qfalse:Qtrue;
}
The string representation of true is “true”.
static VALUE
true_to_s(VALUE obj)
{
return rb_usascii_str_new2("true");
}
Or—Returns true. As anObject is an argument to a method call, it is always evaluated; there is no short-circuit evaluation in this case.
true | puts("or") true || puts("logical or")
produces:
or
static VALUE
true_or(VALUE obj, VALUE obj2)
{
return Qtrue;
}