On Fri, 5 May 2006, RGR wrote: > I want to create an object from a class, but the name of that class is > in a variable, so the form obj=Class.new(args) can't be used. How can it > be done? Without using eval, because its a bit messy and unelegant. > > The equivalent of obj=$variable_with_class_name(args) in php. > > Thanks. > RGR > > -- > Posted via http://www.ruby-forum.com/. > def klass_stamp(hierachy, *a, &b) ancestors = hierachy.split(%r/::/) parent = Object while((child = ancestors.shift)) klass = parent.const_get child parent = klass end klass::new(*a, &b) end obj = klass_stamp('String', 'foobar') -a -- be kind whenever possible... it is always possible. - h.h. the 14th dali lama