diff --git a/complex.c b/complex.c
index 57962f9013..686114b292 100644
--- a/complex.c
+++ b/complex.c
@@ -1692,9 +1692,12 @@ nucomp_to_c(VALUE self)
/*
* call-seq:
- * nil.to_c -> (0+0i)
+ * to_c -> (0+0i)
+ *
+ * Returns zero as a Complex:
+ *
+ * nil.to_c # => (0+0i)
*
- * Returns zero as a complex.
*/
static VALUE
nilclass_to_c(VALUE self)
diff --git a/object.c b/object.c
index b689d5c9b1..0256297b10 100644
--- a/object.c
+++ b/object.c
@@ -106,13 +106,17 @@ rb_obj_setup(VALUE obj, VALUE klass, VALUE type)
return obj;
}
-/**
- * call-seq:
- * obj === other -> true or false
+/*
+ * call-seq:
+ * nil === other -> true or false
*
- * Case Equality -- For class Object, effectively the same as calling
- * #==
, but typically overridden by descendants to provide
- * meaningful semantics in +case+ statements.
+ * 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
/* The default implementation of #=== is
@@ -1251,14 +1255,44 @@ rb_obj_frozen_p(VALUE obj)
/*
* Document-class: NilClass
*
- * The class of the singleton object nil
.
+ * The class of the singleton object +nil+.
+ *
+ * Several of its methods act as operators:
+ *
+ * - #&
+ * - #|
+ * - #===
+ * - #=~
+ * - #^
+ *
+ * Others act as converters, carrying the concept of _nullity_
+ * to other classes:
+ *
+ * - #rationalize
+ * - #to_a
+ * - #to_c
+ * - #to_h
+ * - #to_r
+ * - #to_s
+ *
+ * Another method provides inspection:
+ *
+ * - #inspect
+ *
+ * Finally, there is this query method:
+ *
+ * - #nil?
+ *
*/
/*
- * call-seq:
- * nil.to_s -> ""
+ * call-seq:
+ * to_s -> ''
+ *
+ * Returns an empty String:
+ *
+ * nil.to_s # => ""
*
- * Always returns the empty string.
*/
VALUE
@@ -1270,12 +1304,13 @@ rb_nil_to_s(VALUE obj)
/*
* Document-method: to_a
*
- * call-seq:
- * nil.to_a -> []
+ * call-seq:
+ * to_a -> []
*
- * Always returns an empty array.
+ * Returns an empty Array.
+ *
+ * nil.to_a # => []
*
- * nil.to_a #=> []
*/
static VALUE
@@ -1287,12 +1322,13 @@ nil_to_a(VALUE obj)
/*
* Document-method: to_h
*
- * call-seq:
- * nil.to_h -> {}
+ * call-seq:
+ * to_h -> {}
*
- * Always returns an empty hash.
+ * Returns an empty Hash.
+ *
+ * nil.to_h #=> {}
*
- * nil.to_h #=> {}
*/
static VALUE
@@ -1302,10 +1338,13 @@ nil_to_h(VALUE obj)
}
/*
- * call-seq:
- * nil.inspect -> "nil"
+ * call-seq:
+ * inspect -> 'nil'
+ *
+ * Returns string 'nil':
+ *
+ * nil.inspect # => "nil"
*
- * Always returns the string "nil".
*/
static VALUE
@@ -1315,12 +1354,17 @@ nil_inspect(VALUE obj)
}
/*
- * call-seq:
- * nil =~ other -> nil
+ * call-seq:
+ * nil =~ object -> nil
*
- * Dummy pattern matching -- always returns nil.
+ * Returns +nil+.
+ *
+ * This method makes it useful to write:
+ *
+ * while gets =~ /re/
+ * # ...
+ * end
*
- * This method makes it possible to `while gets =~ /re/ do`.
*/
static VALUE
@@ -1430,15 +1474,20 @@ rb_false_to_s(VALUE obj)
}
/*
- * call-seq:
- * false & obj -> false
- * nil & obj -> false
+ * call-seq:
+ * false & object -> false
+ * nil & object -> false
+ *
+ * Returns +false+:
+ *
+ * false & true # => false
+ * false & Object.new # => false
+ *
+ * Argument +object+ is evaluated:
+ *
+ * false & raise # Raises RuntimeError.
*
- * 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.
*/
-
static VALUE
false_and(VALUE obj, VALUE obj2)
{
@@ -1447,24 +1496,30 @@ false_and(VALUE obj, VALUE obj2)
/*
- * call-seq:
- * false | obj -> true or false
- * nil | obj -> true or false
+ * call-seq:
+ * false | object -> true or false
+ * nil | object -> true or false
+ *
+ * Returns +false+ if +object+ is +nil+ or +false+, +true+ otherwise:
+ *
+ * nil | nil # => false
+ * nil | false # => false
+ * nil | Object.new # => true
*
- * Or---Returns false
if obj is
- * nil
or false
; true
otherwise.
*/
#define false_or true_and
/*
- * call-seq:
- * false ^ obj -> true or false
- * nil ^ obj -> true or false
+ * call-seq:
+ * false ^ object -> true or false
+ * nil ^ object -> true or false
*
- * Exclusive Or---If obj is nil
or
- * false
, returns false
; otherwise, returns
- * true
.
+ * Returns +false+ if +object+ is +nil+ or +false+, +true+ otherwise:
+ *
+ * nil ^ nil # => false
+ * nil ^ false # => false
+ * nil ^ Object.new # => true
*
*/
@@ -1472,9 +1527,10 @@ false_and(VALUE obj, VALUE obj2)
/*
* call-seq:
- * nil.nil? -> true
+ * nil.nil? -> true
*
- * Only the object nil responds true
to nil?
.
+ * Returns +true+.
+ * For all other objects, method nil? returns +false+.
*/
static VALUE
diff --git a/rational.c b/rational.c
index 115cdd8d2c..58786b58ba 100644
--- a/rational.c
+++ b/rational.c
@@ -2103,9 +2103,12 @@ rb_float_denominator(VALUE self)
/*
* call-seq:
- * nil.to_r -> (0/1)
+ * to_r -> (0/1)
+ *
+ * Returns zero as a Rational:
+ *
+ * nil.to_r # => (0/1)
*
- * Returns zero as a rational.
*/
static VALUE
nilclass_to_r(VALUE self)
@@ -2115,10 +2118,14 @@ nilclass_to_r(VALUE self)
/*
* call-seq:
- * nil.rationalize([eps]) -> (0/1)
+ * rationalize(eps = nil) -> (0/1)
+ *
+ * Returns zero as a Rational:
+ *
+ * nil.rationalize # => (0/1)
+ *
+ * Argument +eps+ is ignored.
*
- * Returns zero as a rational. The optional argument +eps+ is always
- * ignored.
*/
static VALUE
nilclass_rationalize(int argc, VALUE *argv, VALUE self)