From: Shin-ichiro HARA Date: 2002-02-04T15:53:38+09:00 Subject: [ruby-list:33738] Re: Redefinition of builtin class 原です。 >まつもと ゆきひろです > >In message "[ruby-list:33736] Redefinition of builtin class" > on 02/02/04, Shin-ichiro HARA writes: > >|昔は、例えば Integer に foo を定義するには、 >| >| class Integer < Numeric >| def foo; 1; end >| end >| >|とスーパークラスまで書かないといけなかったと記憶してるんですが、 > >そうだったっけ? 「指定したら一致してないといけない」という >ルールは作った覚えがあるんですが。 そういう憶えが確かにあるんですが、手元の 1.6.4, 1.6.5 では、 「指定したら一致してないといけない」ですね。 >|今(1.6.6)では、 >| >| class Integer < Numeric >| def foo; 1; end >| end >| p 0.respond_to? :foo #=> false >| >|で、warning: already initialized constant Integer も出ますね。 >|これって仕様変更? > >これはバグです。現状では「指定したら別物」という挙動になって >ますね。さっそく直します。 そうですか。基本的には指定しない訳ですね。