From: Robert Klemme Date: 2005-04-29T23:59:29+09:00 Subject: Re: determining when inside 'class << self' "Ara.T.Howard" schrieb im Newsbeitrag news:Pine.LNX.4.62.0504282141220.19121@harp.ngdc.noaa.gov... > > i like a method like this > > def inside_metaclass? > # to be implemented > end > > class C > class << self > p inside_metaclass? #=> true > end > > p inside_metaclass? #=> false > end > > p inside_metaclass? #=> false > > class << [] > p inside_metaclass? #=> true > end > > can this be done? Yes, like this: class Object def inside_metaclass?() false end end class Class def inside_metaclass? begin self.allocate false rescue TypeError => e /virtual class/i =~ e.to_s and true end end end irb(main):058:0> class < nil irb(main):059:0> p inside_metaclass? false => nil irb(main):060:0> class String; p inside_metaclass? end false => nil Cheers robert