# class TrueClass

The class of the singleton object `true`.

Several of its methods act as operators:

- `&`

- `|`

- `===`

- `^`

One other method:

- `to_s` and its alias `inspect`.

### Public Instance Methods

true & object → true or false click to toggle source

Returns `false` if `object` is `false` or `nil`, `true` otherwise:

true & `Object.new` # => true true & false # => false true & nil # => false

    static VALUE
    true_and(VALUE obj, VALUE obj2)
    {
        return RBOOL(RTEST(obj2));
    }

true === other → true or false click to toggle source
false === other → true or false
nil === other → true or false

Returns `true` or `false`.

Like `Object#==`, if `object` is an instance of `Object` (and not an instance of one of its many subclasses).

This method is commonly overridden by those subclasses, to provide meaningful semantics in `case` statements.

    #define case_equal rb_equal

true ^ object → !object click to toggle source

Returns `true` if `object` is `false` or `nil`, `false` otherwise:

    true ^ Object.new # => false
    true ^ false      # => true
    true ^ nil        # => true

    static VALUE
    true_xor(VALUE obj, VALUE obj2)
    {
        return rb_obj_not(obj2);
    }

inspect
Alias for: to_s
to_s → 'true' click to toggle source

Returns string `'true'`:

    true.to_s # => "true"

`TrueClass#inspect` is an alias for `TrueClass#to_s`.

    VALUE
    rb_true_to_s(VALUE obj)
    {
        return rb_cTrueClass_to_s;
    }

Also aliased as: inspect
true | object → true click to toggle source

Returns `true`:

    true | Object.new # => true
    true | false      # => true
    true | nil        # => true

Argument `object` is evaluated. This is different from `true` with the short-circuit operator, whose operand is evaluated only if necessary:

    true | raise # => Raises RuntimeError.
    true || raise # => true

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