summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-rational
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-08-26 17:53:04 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-12 18:19:54 +0900
commit2b188ed8a191257f23ddf6f8a27bf1d3964587ed (patch)
treebccc235fdf9088a5486201c3855bfb2bfe04a1f2 /mrbgems/mruby-rational
parent2bb84f1f1ae4bfca49bd92d8d0102a5773d3270f (diff)
downloadmruby-2b188ed8a191257f23ddf6f8a27bf1d3964587ed.tar.gz
mruby-2b188ed8a191257f23ddf6f8a27bf1d3964587ed.zip
Reorganize `Integer` system.
- Integrate `Fixnum` and `Integer` - Remove `Integral` - `int / int -> int` - Replace `mrb_fixnum()` to `mrb_int()` - Replace `mrb_fixnum_value()` to `mrb_int_value()`. - Use `mrb_integer_p()` instead of `mrb_fixnum_p()`
Diffstat (limited to 'mrbgems/mruby-rational')
-rw-r--r--mrbgems/mruby-rational/mrblib/rational.rb17
-rw-r--r--mrbgems/mruby-rational/src/rational.c14
2 files changed, 15 insertions, 16 deletions
diff --git a/mrbgems/mruby-rational/mrblib/rational.rb b/mrbgems/mruby-rational/mrblib/rational.rb
index 489d89ebd..e401b1bd6 100644
--- a/mrbgems/mruby-rational/mrblib/rational.rb
+++ b/mrbgems/mruby-rational/mrblib/rational.rb
@@ -48,11 +48,11 @@ class Rational < Numeric
end
def <=>(rhs)
- if rhs.is_a?(Integral)
+ case rhs
+ when Integer, Float
return numerator <=> rhs if denominator == 1
rhs = Rational(rhs)
end
-
case rhs
when Rational
(numerator * rhs.denominator - denominator * rhs.numerator) <=> 0
@@ -65,14 +65,13 @@ class Rational < Numeric
def ==(rhs)
return true if self.equal?(rhs)
- if rhs.is_a?(Integral) && denominator == 1
- return numerator == rhs
- end
- if rhs.is_a?(Rational)
- numerator * rhs.denominator == denominator * rhs.numerator
- else
- rhs == self
+ case rhs
+ when Integer, Float
+ return numerator == rhs if denominator == 1
+ when Rational
+ return numerator * rhs.denominator == denominator * rhs.numerator
end
+ rhs == self
end
end
diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c
index fcaba3df5..5b1bec9e2 100644
--- a/mrbgems/mruby-rational/src/rational.c
+++ b/mrbgems/mruby-rational/src/rational.c
@@ -102,11 +102,11 @@ rational_s_new(mrb_state *mrb, mrb_value self)
mrb_value numv, denomv;
mrb_get_args(mrb, "oo", &numv, &denomv);
- if (mrb_fixnum_p(numv)) {
- numerator = mrb_fixnum(numv);
+ if (mrb_integer_p(numv)) {
+ numerator = mrb_integer(numv);
- if (mrb_fixnum_p(denomv)) {
- denominator = mrb_fixnum(denomv);
+ if (mrb_integer_p(denomv)) {
+ denominator = mrb_integer(denomv);
}
else {
mrb_float denomf = mrb_to_flo(mrb, denomv);
@@ -118,8 +118,8 @@ rational_s_new(mrb_state *mrb, mrb_value self)
else {
mrb_float numf = mrb_to_flo(mrb, numv);
- if (mrb_fixnum_p(denomv)) {
- denominator = mrb_fixnum(denomv);
+ if (mrb_integer_p(denomv)) {
+ denominator = mrb_integer(denomv);
}
else {
mrb_float denomf = mrb_to_flo(mrb, denomv);
@@ -176,7 +176,7 @@ rational_negative_p(mrb_state *mrb, mrb_value self)
static mrb_value
fix_to_r(mrb_state *mrb, mrb_value self)
{
- return rational_new(mrb, mrb_fixnum(self), 1);
+ return rational_new(mrb, mrb_integer(self), 1);
}
void mrb_mruby_rational_gem_init(mrb_state *mrb)