Hi -- On Mon, 29 Nov 2004, Jamis Buck wrote: > David A. Black wrote: > > Hi -- > > > > On Mon, 29 Nov 2004, Sam Stephenson wrote: > > > > > >>On Mon, 29 Nov 2004 11:31:06 +0900, Gavin Sinclair > >><gsinclair / soyabean.com.au> wrote: > >> > >>> Class.get_class > >>> Class.get_class("Test::Unit") -> Test::Unit > >>> Class.get_class("not-a-class") -> exception > >>> > >>> # Should 'get_class' be in Class or in Kernel? > >> > >>Why not String? > >> "Test::Unit".to_class # => Test::Unit > >> > >>My justification: it's analogous to String#to_sym. > > > > > > I'm not sure what either of these adds to const_get -- or, to put it > > another way, why there should be a special method to do (essentially) > > a const_get only for strings that represent class names. > > Well, IIRC, const_get doesn't work with symbols that contain "::". In > other words, const_get( "Test::Unit" ) would fail--you'd have to do > const_get("Test").const_get("Unit"), which becomes cumbersome. I can > think of several instances in my Net::SSH and Net::SFTP stuff alone > where a standard #get_class method would have been useful (though far > from necessary). Oh right, I forgot about that. There are some "deep" const_get implementations floating around... along the lines of: def deep_const_get(str) str.split('::').inject(Object) {|a,b| a.const_get(b) } end which might help. David -- David A. Black dblack / wobblini.net