"Dmitry V. Sabanin" <sdmitry / lrn.ru> schrieb im Newsbeitrag news:200504041340.17940.sdmitry / lrn.ru... > Sorry to reply myself, but maybe that will help: when I'm trying to > Marshal::dump instance, it raises: "Foo can't be referred" Then you need to make sure that Foo is actually defined when you do Marshal.load(). Maybe you didn't require it in the loading script. > On Monday 04 April 2005 13:37, Dmitry V. Sabanin wrote: >> I'm having bad times with this odd problem here. >> I have caching class, that recieves key and instance, caches it and >> returns result. For some reason when instance of class Foo cached, >> after it's return it no longer makes following statement true: Foo >> === instance. instance.class still gives me Foo class, but when i'm >> trying to do Foo == instance.class I still get false. >> My question is -- what can happen to a class so it would not longer >> be able to recognize itself? >> I'm not doing anything fancy within cache, just wrapping instance >> in CacheInstance that returns it when asked. >> >> Any help appreciated! Works for me >> class Foo;end => nil >> f=Foo.new => #<Foo:0x1018f090> >> f2=Marshal.load(Marshal.dump(f)) => #<Foo:0x10180e88> >> Foo===f => true >> Foo===f2 => true >> Foo.eql? f.class => true >> Foo.eql? f2.class => true Regards robert