これは、あなたがメタクラスやシングルトンクラスは、デフォルトto_s
出力に接続されているオブジェクトの表現を見ることができます質問「Given an instance of a Ruby object, how do I get its metaclass?」Rubyメタクラスが与えられていると、それがどのインスタンスに付属しているのですか?
の逆です:
s = "hello"
s_meta = class << s; self; end
s_meta.to_s # => "#<Class:#<String:0x15004dd>>"
class C; end
c_meta = class << C; self; end
c_meta.to_s # => "#<Class:C>"
は、することが可能ですこのオブジェクトを返すメソッドClass.attached
を実装します(レシーバが通常のクラスの場合はnil)。
s_meta.attached # => s
c_meta.attached # => C
C.attached # => nil