From: Paul Lutus Date: 2006-12-19T06:30:09+09:00 Subject: Re: Simple copy of attributes Vincent Fourmond wrote: > > Hello ! > > I've just stumbled upon code where you have different classes with no > relations, and that you want to copy some attributes from one to the > other. So I came up with this: > > def copy_attributes(dest, src, *attrs) > for attr in attrs > dest.send(attr.to_s + '=',src.send(attr)) > end > end > > Then, if you want, say, to copy the attributes foo, bar and baz (to > reach summits in originality) from biniou to bidule you just need: > > copy_attributes(bidule, biniou, :foo, :bar, :baz) > > Is there already a function from standard libs doing something similar ? > > I know that some of you will answer that coming to such a need means I > should probably refactor my code. Well, as in my case I need to copy > similar members from quite different Struct, I would say no ;-)... (and > it's a 100-lines script, not a big project !). My personal view is that you should create a class responsible for data handling and processing, and include methods capable of cloning some or all of the data members of one instance of the class to another. That way, you will have encapsulated the specifics of the data copying or processing within the class. Just my personal impression, based on how you are proceeding. -- Paul Lutus http://www.arachnoid.com