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