From: "nagachika (Tomoyuki Chikanaga)" Date: 2012-06-28T10:08:20+09:00 Subject: [ruby-dev:45868] [ruby-trunk - Bug #6662][Open] prepend した Class/Module が継承ツリー上にある Class/Module で ancestors に Class が入り込む Issue #6662 has been reported by nagachika (Tomoyuki Chikanaga). ---------------------------------------- Bug #6662: prepend した Class/Module が継承ツリー上にある Class/Module で ancestors に Class が入り込む https://bugs.ruby-lang.org/issues/6662 Author: nagachika (Tomoyuki Chikanaga) Status: Open Priority: Normal Assignee: Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-06-28 trunk 36243) [x86_64-darwin11.4.0] prepend した Class/Module で Module#ancestors の順番や Class が入り込む問題は r36241 で対処されましたが まだ ancestors を呼ぶ Class/Module そのものではなくてその superclass や include している Module で prepend を使っていると順番が include と同じになる & Class が入り込むようです。 module M; end class C1 prepend M end class C2 < C1 end C2.ancestors => [C2, C1, M, Class, Object, Kernel, BasicObject] -- http://bugs.ruby-lang.org/