Re: Is it possible from a class to grab the name of the object instance?

Hello Marcin,

self.class.to_s should work

Sorry this return me the class name itself not the instance name?

e.g.
#!/usr/bin/env ruby

class Investment
def initialize
puts “I’am ALIVE!”
iname=self.class.to_s
puts “Instance Name: #{iname}”
end
end

_Invest = Investment.new

puts _Invest.class

give me:
I’am ALIVE!
Instance Name: Investment
Investment

and not “Instance Name: _Invest” as am looking for.

Tx,
r.

2008/5/20 rubisher [email protected]:

class Investment

give me:
I’am ALIVE!
Instance Name: Investment
Investment

and not “Instance Name: _Invest” as am looking for.

There is no such thing as an instance name - unless you define a
property of your class called “name”. Each instance can be referenced
by any number of variables including 0 - there is simply not the
name. As Inaki pointed out.

Kind regards

robert

Robert K. wrote:

puts _Invest.class

give me:
I’am ALIVE!
Instance Name: Investment
Investment

and not “Instance Name: _Invest” as am looking for.

There is no such thing as an instance name - unless you define a
property of your class called “name”.
Ok what I did.
The idea was that as far as ruby is interpreded, it have to save
variable name somewhere in clear with its id and for
debuging reason it could be accessible somehow. But ok it’s not possible
and for me it’s just nice to know.

Each instance can be referenced
by any number of variables including 0 - there is simply not the
name. As Inaki pointed out.

Kind regards

robert

Tx to all for feedback,
r.

Phillip G. wrote:

Well, you could modify your MyClass#initialize method to do something
similar.

Add a global variable or something similar, and add the object to this
variable (for example a Hash, with the variable name as key, and the
object’s class as value).

Good, very good idea, I will investigate.

Though, you’d have to intercept the assignment somehow to grab the
variable name.

Thanks a lot,
r.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

rubisher wrote:

| The idea was that as far as ruby is interpreded, it have to save
| variable name somewhere in clear with its id and for debuging reason it
| could be accessible somehow. But ok it’s not possible and for me it’s
| just nice to know.

Well, you could modify your MyClass#initialize method to do something
similar.

Add a global variable or something similar, and add the object to this
variable (for example a Hash, with the variable name as key, and the
object’s class as value).

Though, you’d have to intercept the assignment somehow to grab the
variable name.

HTH,


Phillip G.
Twitter: twitter.com/cynicalryan
Blog: http://justarubyist.blogspot.com

Format a program to help the reader understand it.
~ - The Elements of Programming Style (Kernighan & Plaugher)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkg3bS8ACgkQbtAgaoJTgL/bPwCfRra/JfzsjjD5XS9cRXdB7Ede
RRUAn3eYv1QZQnWHIIzVixr1hm1eDwUR
=vkQ1
-----END PGP SIGNATURE-----