Hugh Sasse Staff Elec Eng wrote: > > I was thinking that when a lot of work must be done on an object > it would be nice to alter the search path for methods without a > receiver. > > a.do_this > a.do_that > a.do_the_other > > could be perhaps written as: > > with a do > do_this > do_that > do_the_other > end > > However I realised you get this, pretty well, with: > > class << a > def work_hard > do_this > do_that > do_the_other > end > end > > a.work_hard > > so I wouldn't need such a construct. However, if I do this for many > objects, I end up creating lots of singleton classes, that have no name. > So, to be really dynamic about this, I need to be able to destroy them > as well as create them. Since they have no name, how can I do that? > > Hugh > hgs / dmu.ac.uk Given a convention that destructive methods could be counted on to return the receiver, then we could have a.do_this.do_that(parameter).do_the_other ...but we don't have such a convention, e.g., String#chomp! sometimes returns nil. Nonetheless it's something that can be done with your own classes if you want. (on the other hand it's kind of crowded looking.) -- Mark