mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
1cf225dfbe
Added complete call-seq documentation for all Rational methods in mrblib/rational.rb (4 methods): ## Rational Class Methods: - inspect: returns string representation for debugging with parentheses format, showing the rational value in "(numerator/denominator)" form - to_s: returns string representation in "numerator/denominator" format for display and conversion purposes - <=>: spaceship operator for comparison with other numeric types, returns -1/0/+1 for less/equal/greater comparisons, enables Comparable module functionality with proper nil handling for incomparable values ## Numeric Extension Methods: - to_r: converts any numeric value to rational representation with denominator of 1, part of the standard numeric conversion protocol Co-authored-by: Atlassian Rovo Dev
mruby-rational
This mrbgem provides a Rational class for mruby, allowing you to work with rational numbers (fractions).
Usage
To use the Rational class, you first need to include the mrbgem in your mruby build.
Include in build_config.rb
Add the following line to your build_config.rb file:
conf.gem :core => 'mruby-rational'
Creating Rational Objects
You can create Rational objects using the Rational() method:
r1 = Rational(1, 2) # Represents 1/2
r2 = Rational(3, 4) # Represents 3/4
Arithmetic Operations
The Rational class supports standard arithmetic operations:
r_add = Rational(1, 2) + Rational(1, 3) # (5/6)
r_sub = Rational(1, 2) - Rational(1, 3) # (1/6)
r_mul = Rational(1, 2) * Rational(1, 3) # (1/6)
r_div = Rational(1, 2) / Rational(1, 3) # (3/2)
Available Methods
The Rational class provides the following important methods:
numerator: Returns the numerator of the rational number.denominator: Returns the denominator of the rational number.to_f: Converts the rational number to aFloat.to_i: Converts the rational number to anInteger(truncates towards zero).to_s: Returns a string representation of the rational number (e.g., "1/2").inspect: Returns a string representation suitable for debugging (e.g., "(1/2)").==: Checks for equality with another number.<=>: Compares the rational number with another number.positive?: Returnstrueif the rational number is greater than zero.negative?: Returnstrueif the rational number is less than zero.
Error Handling
The mrbgem handles common errors such as:
- DivisionByZeroError: Raised when attempting to create a rational number with a denominator of zero.
- RangeError: Raised in case of integer overflow during calculations.
License
mruby-rational is licensed under the MIT License. See LICENSE for details.