原です。

裏技の類になりますが、Module というのは自分の名前を知っている
特殊なオブジェクトで、

  class HogeHo
    Const1, Const2, Const3 = (0..2).map{Module.new}
    p Const1 #=> HogeHo::Const1
  end

となって便利なこともあります。(前に話題になったことある。)

更に悪のりですが、

  def enum
    e = Proc.new
    e.call((0...e.arity).map{Module.new})
  end
  
  class HogeHi
    enum do
      |Const1, Const2, Const3|
    end
    p Const1 #=> HogeHi::Const1
  end

とかやってみると出来るみたいですね。