飲んだり寝たり

だいたいメモ

Rubyでサブクラスの取得

直接の子クラスのみなら

1
2
3
4
5
class Class
  def subclasses
    ObjectSpace.each_object(Class).select{|klass| klass.superclass == self}
  end
end

子孫クラス(?)全てなら

1
2
3
4
5
class Class
  def subclasses
    ObjectSpace.each_object(Class).select{|klass| klass < self}
  end
end

Comments