From: Robert Klemme Date: 2005-05-01T07:54:26+09:00 Subject: Re: Cloning into an object "George Ogata" schrieb im Newsbeitrag news:87zmvfx6u9.fsf@optushome.com.au... > Eric Mahurin writes: > >> Anybody know how to generically copy (shallow like clone) an >> object into another object? It would be nice to handle the >> case where the objects have a different class, but I would at >> least like to know how to do it when the classes are the same. >> >> Here is an example of what I would like to do: >> >> dest = Object.new # or String.new if necessary >> source = "hello world" >> destid = dest.id >> >> source.clone_into(dest) >> >> dest -> "hello world" >> dest.id==destid -> true >> dest.class -> String > > I hear that evil.rb has Object#become, which will do that with some > caveats. Search "Object#become" in the list archives for more info. If you just want to copy state you can do without evil magic (although not working for builtins like String, Array, Fixnum etc.): class Object def set_from(o) o.instance_variables.each do |var| instance_variable_set( var, o.instance_variable_get( var ) ) end self end end Kind regards robert