(追記:普通にmetametametametaclassとかにすれば良かった。修正は一瞬だけど。)
多段特異クラス - チナミニで、汚い実装をさらしていましたが、その後お好み焼きを焼いている間に素晴らしい実装が思いついたので報告いたします。
class Class def method_missing(meth, *args) if meth.to_s =~ /\Ame((?:ta)+)class\z/ level = $1.gsub(/ta/).count level.times.inject(self) {|klass, _| class << klass; self end } else super end end end p Object.metaclass #=> #<Class:Object> p Object.metatataclass #=> #<Class:#<Class:#<Class:Object>>>
'ta'の数によって何段か変わります。
普通に特異クラスも得られるので、とても実用的ですね!