Это один из тех случаев, когда вам нужно просто запустить irb и попробовать его.
Да, класс может быть определен в другом классе. Поскольку суперкласс класса является модулем (то есть класс расширяет модуль), они могут делать практически все, что может модуль. Заметным исключением является то, что вы не можете include
(mixin) класс.
Тем не менее, есть очень мало причин для использования этого шаблона проектирования. Более вероятно, что A и B могут считаться родными братьями. Там нет необходимости произвольно именовать пространство, пока вы не посинете в лицо. Если у вас более 3 уровней, остановитесь и подумайте о рефакторинге.
Лучшим шаблоном дизайна для этого примера может быть:
module Alphabet
class A; end
class B; end
end
Для чего-то более сложного, это продолжает хорошо работать, используя Mixins:
module Animals
class Dog
include Walking
end
module Walking
# some methods pertaining to the ability to walk
end
end