From: "Brian Schröder" Date: 2005-11-07T16:25:59+09:00 Subject: Re: Retrieving class name in a class method? On 07/11/05, petermichaux@yahoo.com wrote: > Hi, > > I'd like to use the name of my class in a class method. I've tried > self.class.to_s but that outputs "Class". I've attached my code below > > Thanks, > Peter > > > class Thing > > def self.my_name > # I don't want to reference instance method my_name > self.class.to_s > end > > def self.my_name2 > self.new.my_name > end > > def my_name > self.class.to_s > end > > end > > # I want these three lines to output "Thing" > puts Thing.my_name #outputs "Class" > puts Thing.my_name2 #outputs "Thing" > puts Thing.new.my_name #outputs "Thing" > > > That is because the class of a class is class. $ irb --simple-prompt >> 12.class => Fixnum >> 12.class.class => Class >> 12.class.class.class => Class >> class A; p self; end A => nil >> class A; p self.class; end Class => nil >> class A; def self.a; self; end; end; A.a => A cheers, Brian -- http://ruby.brian-schroeder.de/ Stringed instrument chords: http://chordlist.brian-schroeder.de/