Rubyでサブクラスの取得

直接の子クラスのみなら

class Class
  def subclasses
    ObjectSpace.each_object(Class).select{|klass| klass.superclass == self}
  end
end

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

class Class
  def subclasses
    ObjectSpace.each_object(Class).select{|klass| klass < self}
  end
end