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)