🤖

[Feature #9779] 自身のクラスやモジュールが組み込まれているオブジェクトを取得する提案

2024/09/05に公開

[Feature #9779] Add Module#descendants

  • 任意のクラスやモジュールがどのクラスに継承されていたり mixin されているのかを取得する Module#descendants を追加する提案
class X
end

class Y < X
end

class Z < Y
end

p X.descendants    #=> [X, Y, Z]

module A
end

module B
  include A
end

module C
  include A
end

p A.descendants    #=> [A, C, B]
  • Class#descendantsActiveSupport で拡張されているメソッド ですね
  • また数年前に Ruby 本体にも入る予定だったんですがいろいろとあり、そっちは対応されませんでした
  • また Module#descendants の方は ActiveSupport にも同等の機能は存在していないです
  • Module#descendants 相当の機能が欲しくて調べていたらこのチケットを見つけたんですがチケット自体は10年以上前のもので特に進展などないので特に需要なさそうなんですかねえ
GitHubで編集を提案

Discussion