How do I tell the difference between a class C and the singleton class of an instance of C

Suppose that:

class C; end
c = C.new
sing = (class << c; self; end)

If a method is called with C and sing, but I don’t know which is first
and
which is second in the parameter list, how do I tell them apart?

Thanks,
dean

I just figured out a way, if I also have the instance “c”.

c.instance_of?© # => true
c.instance_of?(sing) # => false

Also works for kind_of? and is_a?

Thanks, Dean! :wink:

“Dean W.” [email protected] writes:

Suppose that:

class C; end
c = C.new
sing = (class << c; self; end)

If a method is called with C and sing, but I don’t know which is first and
which is second in the parameter list, how do I tell them apart?

C.name ==> “C”
sing.name ==> “”

YS

Thanks.

Correction: only instance_of? works. is_a? and kind_a? both return true
for
“C” and “sing”.