diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-19 16:01:06 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-19 16:01:06 +0000 |
commit | 7559d2fd7accfd9eab2c8ab5864a5c61d6016d1d (patch) | |
tree | e5b382e3e6dc23c0eef00a2da9fb50c0e2281495 /lib | |
parent | 5363e91dba3d2bd1dffaf8eeff53bc3f0a2a3ce4 (diff) | |
download | ruby-7559d2fd7accfd9eab2c8ab5864a5c61d6016d1d.tar.gz |
* io.c (io_close): call rb_io_close() directly if io is a T_FILE
object. [ruby-dev:27156]
* file.c (file_expand_path): allow pathnames to expand.
[ruby-dev:27152]
* numeric.c (Init_Numeric): should define Fixnum#div.
[ruby-dev:27129]
* file.c (rb_thread_flock): wrap flock(2) by TRAP_BEG and
TRAP_END. [ruby-dev:27122]
* file.c (rb_file_join): call FilePathValue() to all Pathnames to
join. [ruby-dev:27127]
* file.c (rb_get_path): call StringValueCStr() to ensure no nul
bytes in path strings.
* gc.c (garbage_collect): need value for return. [ruby-dev:27127]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mathn.rb | 7 | ||||
-rw-r--r-- | lib/rational.rb | 6 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/mathn.rb b/lib/mathn.rb index 19325f2996..ddfca57681 100644 --- a/lib/mathn.rb +++ b/lib/mathn.rb @@ -116,17 +116,22 @@ class Prime end class Fixnum + remove_method :/ alias / quo + alias_method :/, :quo + p :fixdiv + p [[:fixdiv, 1.div(1)]] end class Bignum + remove_method :/ alias / quo end class Rational Unify = true - remove_method(:inspect) + remove_method :inspect def inspect format "%s/%s", numerator.inspect, denominator.inspect end diff --git a/lib/rational.rb b/lib/rational.rb index 2241004852..f4570bd306 100644 --- a/lib/rational.rb +++ b/lib/rational.rb @@ -37,6 +37,7 @@ # def Rational(a, b = 1) + p [:Rational, a, b] if a.kind_of?(Rational) && b == 1 a else @@ -54,9 +55,13 @@ class Rational < Numeric num = -num den = -den end + p [:reduce, num, den] gcd = num.gcd(den) + p [:div1, num, num.class, gcd] num = num.div(gcd) + p [:div2, den, gcd] den = den.div(gcd) + p [:gcd=, gcd] if den == 1 && defined?(Unify) num else @@ -333,6 +338,7 @@ end class Fixnum undef quo def quo(other) + p [:quo, self, other] Rational.new!(self,1) / other end alias rdiv quo |