1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Enhanced RDoc for Numeric (#4991)

Treated:

    #@-
    #fdiv
    #div
    #abs
    #zero?
    #nonzero?
    #to_int
    #positive?
    #negative?
This commit is contained in:
Burdette Lamar 2021-10-19 12:00:22 -05:00 committed by GitHub
parent 6b1efc54c8
commit 3e96b94eba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
Notes: git 2021-10-20 02:00:53 +09:00
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>

View file

@ -566,7 +566,7 @@ num_dup(VALUE x)
/*
* call-seq:
* +num -> self
* +self -> self
*
* Returns +self+.
*
@ -588,7 +588,7 @@ num_uplus(VALUE num)
* -2.i # => (0-2i)
* 2.0.i # => (0+2.0i)
* Rational(1, 2).i # => (0+(1/2)*i)
* Complex(3, 4).i # Raises NoMethodError.
* Complex(3, 4).i # Raises NoMethodError.
*
*/
@ -600,7 +600,7 @@ num_imaginary(VALUE num)
/*
* call-seq:
* -num -> numeric
* -self -> numeric
*
* Unary Minus---Returns the receiver, negated.
*/
@ -618,9 +618,15 @@ num_uminus(VALUE num)
/*
* call-seq:
* num.fdiv(numeric) -> float
* fdiv(other) -> float
*
* Returns the quotient <tt>self/other</tt> as a float,
* using method +/+ in the derived class of +self+.
* (\Numeric itself does not define method +/+.)
*
* Of the Core and Standard Library classes,
* only BigDecimal uses this implementation.
*
* Returns float division.
*/
static VALUE
@ -631,14 +637,15 @@ num_fdiv(VALUE x, VALUE y)
/*
* call-seq:
* num.div(numeric) -> integer
* div(other) -> integer
*
* Uses +/+ to perform division, then converts the result to an integer.
* Numeric does not define the +/+ operator; this is left to subclasses.
* Returns the quotient <tt>self/other</tt> as an integer (via +floor+),
* using method +/+ in the derived class of +self+.
* (\Numeric itself does not define method +/+.)
*
* Equivalent to <code>num.divmod(numeric)[0]</code>.
* Of the Core and Standard Library classes,
* Float, Rational, and Complex use this implementation.
*
* See Numeric#divmod.
*/
static VALUE
@ -779,16 +786,16 @@ num_divmod(VALUE x, VALUE y)
/*
* call-seq:
* num.abs -> numeric
* num.magnitude -> numeric
* abs -> numeric
*
* Returns the absolute value of +num+.
* Returns the absolute value of +self+.
*
* 12.abs #=> 12
* (-34.56).abs #=> 34.56
* -34.56.abs #=> 34.56
* 12.abs #=> 12
* (-34.56).abs #=> 34.56
* -34.56.abs #=> 34.56
*
* Numeric#magnitude is an alias for Numeric#abs.
*
*/
static VALUE
@ -802,9 +809,13 @@ num_abs(VALUE num)
/*
* call-seq:
* num.zero? -> true or false
* zero? -> true or false
*
* Returns +true+ if +zero+ has a zero value, +false+ otherwise.
*
* Of the Core and Standard Library classes,
* only Rational and Complex use this implementation.
*
* Returns +true+ if +num+ has a zero value.
*/
static VALUE
@ -831,15 +842,20 @@ rb_int_zero_p(VALUE num)
/*
* call-seq:
* num.nonzero? -> self or nil
* nonzero? -> self or nil
*
* Returns +self+ if +num+ is not zero, +nil+ otherwise.
* Returns +self+ if +self+ is not a zero value, +nil+ otherwise;
* uses method <tt>zero?</tt> for the evaluation.
*
* This behavior is useful when chaining comparisons:
* The returned +self+ allows the method to be chained:
*
* a = %w[z Bb bB bb BB a aA Aa AA A]
* a.sort {|a, b| (a.downcase <=> b.downcase).nonzero? || a <=> b }
* # => ["A", "a", "AA", "Aa", "aA", "BB", "Bb", "bB", "bb", "z"]
*
* Of the Core and Standard Library classes,
* Integer, Float, Rational, and Complex use this implementation.
*
* a = %w( z Bb bB bb BB a aA Aa AA A )
* b = a.sort {|a,b| (a.downcase <=> b.downcase).nonzero? || a <=> b }
* b #=> ["A", "a", "AA", "Aa", "aA", "BB", "Bb", "bB", "bb", "z"]
*/
static VALUE
@ -853,13 +869,21 @@ num_nonzero_p(VALUE num)
/*
* call-seq:
* num.to_int -> integer
* to_int -> integer
*
* Invokes the child class's +to_i+ method to convert +num+ to an integer.
* Returns +self+ as an integer;
* converts using method +to_i+ in the derived class.
*
* Of the Core and Standard Library classes,
* only Rational and Complex use this implementation.
*
* Examples:
*
* Rational(1, 2).to_int # => 0
* Rational(2, 1).to_int # => 2
* Complex(2, 0).to_int # => 2
* Complex(2, 1) # Raises RangeError (non-zero imaginary part)
*
* 1.0.class #=> Float
* 1.0.to_int.class #=> Integer
* 1.0.to_i.class #=> Integer
*/
static VALUE
@ -870,9 +894,10 @@ num_to_int(VALUE num)
/*
* call-seq:
* num.positive? -> true or false
* positive? -> true or false
*
* Returns +true+ if +self+ is greater than 0, +false+ otherwise.
*
* Returns +true+ if +num+ is greater than 0.
*/
static VALUE
@ -893,9 +918,10 @@ num_positive_p(VALUE num)
/*
* call-seq:
* num.negative? -> true or false
* negative? -> true or false
*
* Returns +true+ if +self+ is less than 0, +false+ otherwise.
*
* Returns +true+ if +num+ is less than 0.
*/
static VALUE