From 2edfd96cbef5f5768168188254398478f72c5459 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 17 Jun 2025 16:22:19 +0900 Subject: [PATCH] mruby-rational: add README.md The document is written by Google Jules. --- mrbgems/mruby-rational/README.md | 61 ++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 mrbgems/mruby-rational/README.md diff --git a/mrbgems/mruby-rational/README.md b/mrbgems/mruby-rational/README.md new file mode 100644 index 000000000..537c2fdaa --- /dev/null +++ b/mrbgems/mruby-rational/README.md @@ -0,0 +1,61 @@ +# 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: + +```ruby +conf.gem :core => 'mruby-rational' +``` + +### Creating Rational Objects + +You can create `Rational` objects using the `Rational()` method: + +```ruby +r1 = Rational(1, 2) # Represents 1/2 +r2 = Rational(3, 4) # Represents 3/4 +``` + +### Arithmetic Operations + +The `Rational` class supports standard arithmetic operations: + +```ruby +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 a `Float`. +- `to_i`: Converts the rational number to an `Integer` (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?`: Returns `true` if the rational number is greater than zero. +- `negative?`: Returns `true` if 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.