From: shugo@... Date: 2014-04-28T07:28:25+00:00 Subject: [ruby-core:62195] [ruby-trunk - Feature #9779] Add Module#descendents Issue #9779 has been updated by Shugo Maeda. s/descendents/descendants/ ---------------------------------------- Feature #9779: Add Module#descendents https://bugs.ruby-lang.org/issues/9779#change-46350 * Author: Shugo Maeda * Status: Open * Priority: Normal * Assignee: * Category: core * Target version: current: 2.2.0 ---------------------------------------- Now classes have links to their subclasses, so how about to add Module#descendents? ```ruby class X end class Y < X end class Z < Y end p X.descendents #=> [X, Y, Z] module A end module B include A end module C include A end p A.descendents #=> [A, C, B] ``` One of my own use cases is to implement AspectJ like pointcut which matches all subclasses of the given class. Considerations: * Should the return value of Module#descendents include self? * Should the return value of Module#descendents include singleton classes? I attach a patch, where the return value includes both self and singleton classes. ---Files-------------------------------- 0001-Add-Module-descendents.patch (3.75 KB) -- https://bugs.ruby-lang.org/