From: Morton Goldberg Date: 2007-08-24T16:32:47+09:00 Subject: Re: Changing "self" for cleaner code On Aug 23, 2007, at 9:06 PM, David A. Black wrote: > On Fri, 24 Aug 2007, Morton Goldberg wrote: > >> On Aug 23, 2007, at 5:45 AM, Gregor Kopp wrote: >> >>> Another way: >>> class Object >>> def with &block >>> yield self >>> end >>> end >>> verylongobject = "Hakuna Matata!" >>> verylongobject.with do |o| >>> puts o #-> Kakuna Matata! >>> puts o.length #-> 14 >>> puts o.reverse #-> !atataM anukaH >>> puts o.upcase #-> HAKUNA MATATA! >>> end >> >> With a small modification the OP can get exactly the syntactic >> form he wants: >> >> >> def with obj >> yield obj >> end >> >> verylongobject = "Hakuna Matata!" >> >> with verylongobject do |o| >> o # => "Hakuna Matata!" >> o.length # => 14 >> o.reverse # => "!atataM anukaH" >> o.upcase # => "HAKUNA MATATA!" >> end >> > > Is that better than just calling the methods without a block? Or if > the variable length is a concern: > > o = verylongobject Was just reacting to Gregor Kopp's message without thinking. Boto Pe�a's answer is the right one. Regards, Morton