Issue #14394 has been updated by byroot (Jean Boussier).


> self should be is contained or not?

I don't think it should no. `self < self # => self`.

> singleton classes should be excluded.

Absolutely.

> order is random

Agreed.

> performance of this method is not important, or important

As long as it has reasonable performance, and that it's not affected by the size of the heap, it will be fine.

It's used in a few semi-hotspot in Rails, hence why there are two versions of it. A slow one that use `ObjectSpace.each_objects` and one keeping an array of `WeakRef` populated by `inherited`.

----------------------------------------
Feature #14394: Class.descendants
https://bugs.ruby-lang.org/issues/14394#change-87704

* Author: ridiculous (Ryan Buckley)
* Status: Feedback
* Priority: Normal
----------------------------------------
There have been numerous implementations of the method Class.descendants by various gems. However, I can't help but think that this ability should be included in the Ruby language itself. Especially since Ruby already offers the counterpart method Class.ancestors.

Would it possible to add a `descendants` class method?



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>