[Ruby] オーバーライドとか無視してKernel#classを直接呼びたい

直接 `self.class` を呼ぶと、#class がオーバーライドされている可能性があるので任意のオブジェクトに対して呼ぶことはできません。よってKernel#classを直接呼ぶ必要があります。そこで、以下のように#classのUnboudMethodを得て、それにレシーバを与えて呼び出すことで解決できます。

def self.class
  raise "boom!"
end

get_class = Kernel.instance_method(:class)
# and later
p get_class.bind(self).call

とはいえパフォーマンスがあまりよくないのでもっといい方法があればそっちを使いたい。

あと Kernel#class の上書きはやめてくださいお願いしますm(_ _)m

[追記]
別解もあるようです。

このままだと汎用的には使えないのでFixnumを避けるなどの工夫は必要ですが、こちらでもいいですね。