class TrueClass
The class of the singleton object true.
Several of its methods act as operators:
One other method:
Public Instance Methods
(false | nil) → false
(untyped obj) → bool
Source
static VALUE
true_and(VALUE obj, VALUE obj2)
{
return RBOOL(RTEST(obj2));
}
Returns false if object is false or nil, true otherwise:
true & Object.new # => true true & false # => false true & nil # => false
VALUE
rb_obj_equal(VALUE obj1, VALUE obj2)
{
return RBOOL(obj1 == obj2);
}
Returns whether self and other are the same object:
object = Object.new object == object # => true object == Object.new # => false
Here in class Object, ==, equal?, and eql? are the same method. A subclass may override == to provide class-specific meaning.
Unlike ==, the equal? method should never be overridden by subclasses as it is used to determine object identity (that is, a.equal?(b) if and only if a is the same object as b):
obj = "a" other = obj.dup obj == other #=> true obj.equal? other #=> false obj.equal? obj #=> true
The eql? method returns true if obj and other refer to the same hash key. This is used by Hash to test members for equality. For any pair of objects where eql? returns true, the hash value of both objects must be equal. So any subclass that overrides eql? should also override hash appropriately.
For objects of class Object, eql? is synonymous with ==. Subclasses normally continue this tradition by aliasing eql? to their overridden == method, but there are exceptions. Numeric types, for example, perform type conversion across ==, but not across eql?, so:
1 == 1.0 #=> true 1.eql? 1.0 #=> false
(true) → true
(untyped obj) → bool
Source
#define case_equal rb_equal
Returns true or false.
Like Object#==, if other 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.
(false | nil) → true
(untyped obj) → bool
Source
static VALUE
true_xor(VALUE obj, VALUE obj2)
{
return rb_obj_not(obj2);
}
Returns true if object is false or nil, false otherwise:
true ^ Object.new # => false true ^ false # => true true ^ nil # => true
(untyped obj) → true
Source
static VALUE
true_or(VALUE obj, VALUE obj2)
{
return Qtrue;
}
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
() → "true"
Source
VALUE
rb_true_to_s(VALUE obj)
{
return rb_cTrueClass_to_s;
}