summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-rational
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-07-18 00:34:08 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2019-07-18 00:34:08 +0900
commit2a410c0e1b33083402c02d8d8ae3fc99082ec8c3 (patch)
tree120fdbb880253b2b6df2fc21582fa2a493ab0b51 /mrbgems/mruby-rational
parent0b5e15501671422e5badbb9890904a3e82063bda (diff)
downloadmruby-2a410c0e1b33083402c02d8d8ae3fc99082ec8c3.tar.gz
mruby-2a410c0e1b33083402c02d8d8ae3fc99082ec8c3.zip
Avoid making top-level `env` in initialization code; ref #4581
Diffstat (limited to 'mrbgems/mruby-rational')
-rw-r--r--mrbgems/mruby-rational/mrblib/rational.rb41
1 files changed, 21 insertions, 20 deletions
diff --git a/mrbgems/mruby-rational/mrblib/rational.rb b/mrbgems/mruby-rational/mrblib/rational.rb
index 93af72b96..c0b16a6ae 100644
--- a/mrbgems/mruby-rational/mrblib/rational.rb
+++ b/mrbgems/mruby-rational/mrblib/rational.rb
@@ -89,28 +89,29 @@ module Kernel
a, b = b, a % b until b == 0
Rational._new(numerator.div(a), denominator.div(a))
end
-end
-[:+, :-, :*, :/, :<=>, :==, :<, :<=, :>, :>=].each do |op|
- Fixnum.instance_eval do
- original_operator_name = "__original_operator_#{op}_rational"
- alias_method original_operator_name, op
- define_method op do |rhs|
- if rhs.is_a? Rational
- Rational(self).__send__(op, rhs)
- else
- __send__(original_operator_name, rhs)
+ [:+, :-, :*, :/, :<=>, :==, :<, :<=, :>, :>=].each do |op|
+ Fixnum.instance_eval do
+ original_operator_name = "__original_operator_#{op}_rational"
+ alias_method original_operator_name, op
+ define_method op do |rhs|
+ if rhs.is_a? Rational
+ Rational(self).__send__(op, rhs)
+ else
+ __send__(original_operator_name, rhs)
+ end
end
end
- end
- Float.instance_eval do
- original_operator_name = "__original_operator_#{op}_rational"
- alias_method original_operator_name, op
- define_method op do |rhs|
- if rhs.is_a? Rational
- rhs = rhs.to_f
+ Float.instance_eval do
+ original_operator_name = "__original_operator_#{op}_rational"
+ alias_method original_operator_name, op
+ define_method op do |rhs|
+ if rhs.is_a? Rational
+ rhs = rhs.to_f
+ end
+ __send__(original_operator_name, rhs)
end
- __send__(original_operator_name, rhs)
- end
- end if Object.const_defined?(:Float)
+ end if Object.const_defined?(:Float)
+ end
end
+