Интересно. После некоторых экспериментов вызов SomeConstant.const_set
из разных контекстов не имеет никакого значения, поэтому вызов его внутри блока class Object
аналогичен определению его в пространстве имен верхнего уровня.
Более того: все в глобальном пространстве имен неявно определено в классе Object, поэтому оно фактически избыточно. Единственное преимущество, которое я вижу [по сравнению с определением в другом классе или в модуле ядра], заключается в том, что константа будет доступна для всех классов, и цепочка поиска будет смотреть на класс Object
перед модулем Kernel
.