Given an instance of a Ruby object, how do I get its metaclass?
Posted
by Stanislaus Wernstrom
on Stack Overflow
See other posts from Stack Overflow
or by Stanislaus Wernstrom
Published on 2010-05-31T20:27:27Z
Indexed on
2010/05/31
20:33 UTC
Read the original article
Hit count: 220
Normally, I might get the metaclass for a particular instance of a Ruby object with something like this:
class C
def metaclass
class << self; self; end
end
end
# This is this instance's metaclass.
C.new.metaclass => #<Class:#<C:0x01234567>>
# Successive invocations will have different metaclasses,
# since they're different instances.
C.new.metaclass => #<Class:#<C:0x01233...>>
C.new.metaclass => #<Class:#<C:0x01232...>>
C.new.metaclass => #<Class:#<C:0x01231...>>
Let's say I just want to know the metaclass of an arbitrary object instance obj
of an arbitrary class, and I don't want to define a metaclass
(or similar) method on the class of obj
.
Is there a way to do that?
© Stack Overflow or respective owner