Class: TrueClass

Inherits:
Object show all
Defined in:
object.c

Overview

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.

Instance Method Summary collapse

Instance Method Details

#&(obj) ⇒ Boolean

And---Returns false if obj is nil or false, true otherwise.

Returns:

  • (Boolean)


# File 'object.c'

/*
 *  call-seq:
 *     true & obj    => true or false
 *  
 *  And---Returns <code>false</code> if <i>obj</i> is
 *  <code>nil</code> or <code>false</code>, <code>true</code> otherwise.
 */

static VALUE
true_and(obj, obj2)
    VALUE obj, obj2;
{
    return RTEST(obj2)?Qtrue:Qfalse;
}

#^(obj) ⇒ Object

Exclusive Or---Returns true if obj is nil or false, false otherwise.



# File 'object.c'

/*
 *  call-seq:
 *     true ^ obj   => !obj
 *  
 *  Exclusive Or---Returns <code>true</code> if <i>obj</i> is
 *  <code>nil</code> or <code>false</code>, <code>false</code>
 *  otherwise.
 */

static VALUE
true_xor(obj, obj2)
    VALUE obj, obj2;
{
    return RTEST(obj2)?Qfalse:Qtrue;
}

#to_sObject

The string representation of true is "true".



# File 'object.c'

/*
 * call-seq:
 *   true.to_s   =>  "true"
 *
 * The string representation of <code>true</code> is "true".
 */

static VALUE
true_to_s(obj)
    VALUE obj;
{
    return rb_str_new2("true");
}

#|(obj) ⇒ 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

Returns:

  • (true)


# File 'object.c'

/*
 *  call-seq:
 *     true | obj   => true
 *  
 *  Or---Returns <code>true</code>. As <i>anObject</i> 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")
 *     
 *  <em>produces:</em>
 *     
 *     or
 */

static VALUE
true_or(obj, obj2)
    VALUE obj, obj2;
{
    return Qtrue;
}