Ответ 1
Вы просите увидеть всех предков класса или потомков? Для предков используйте:
Class.ancestors
Однако сопоставимый метод "из коробки" для потомков. Вы можете использовать ObjectSpace, как показано ниже, но он медленный и не может быть переносимым по всем реализациям Ruby:
ObjectSpace.each_object(Class) do |klass|
p klass if klass < StandardError
end
EDIT:
Можно также использовать класС# унаследованный для отслеживания подкласса. Это не поймает никаких подклассов, созданных до того, как будет определена функция отслеживания, поэтому может не соответствовать вашему варианту использования. Если вам нужно использовать эту информацию программно на классах, определенных внутри вашего приложения, однако, это может быть путь.