groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul King <pa...@asert.com.au>
Subject Re: .with() variant that returns the original object
Date Tue, 08 Nov 2016 23:49:01 GMT
Well we certainly could have as per Jochen's suggestion a DGM method
roughly like:

public static with(def self, boolean returnThis, Closure closure) { ... }

and for backwards compatibility returnThis would default to false,
i.e. with(closure) and identity(closure) are an alias for with(false, closure)
and tap would be an alias for with(true, closure)

I think it is worth having the alias, if nothing else for better type
inferencing we'll get from the signatures but also letting people
choose between tap and with(true).

Cheers, Paul.


On Wed, Nov 9, 2016 at 9:02 AM, Henrik Martin <henrik@netgate.net> wrote:
> +1 for withThis or withValue and +10 for Jochen's overloading proposal if
> it's feasible.
> -1000 for tap. Completely nonsensical to me and makes me think of network
> tun/tap interfaces in Linux or something like that. Isn't the functionality
> a little bit like the Builder pattern more than a pipeline of commands?
> Maybe I'm misunderstanding the whole thing. Either way, to introduce a
> completely new name for something that is already named and simply augmented
> in terms of functionality seems very confusing and counter intuitive to me.
> Imagine a Groovy newbie that reads a tutorial or reference manual and first
> learns about with(). Then a little further on, tap() is introduced. I would
> immediately think "why on earth did they name these things completely
> differently, when one is essentially a variant of the other???". Again,
> forgive me if I'm completely misunderstanding the context here.
>
> -Henrik
>
> On 11/8/16 10:16 AM, Gerald Wiltse wrote:
>
> Some really neat and creative suggestions here suddenly. Still happy with
> any name, but I do like "withThis"  and "having",  However, tap seems to be
> gaining momentum and with good reasons, despite the common complaint of
> "What the heck does tap mean".  I agree it makes more sense after explained.
>
> Gerald R. Wiltse
> jerrywiltse@gmail.com
>
>
> On Tue, Nov 8, 2016 at 12:43 PM, Marc Paquette <marcpa@mac.com> wrote:
>>
>> +1 for tap.  Concise and makes sense once explained (even intuitive to
>> some).
>>
>> Have you ever tried to find usages of with in groovy with code examples
>> with google without eventually loosing your temper ?
>>
>> For one thing, I think tap will be easier to google for.
>>
>> Marc Paquette
>>
>> Le 8 nov. 2016 à 12:32, Suderman Keith <suderman@anc.org> a écrit :
>>
>>
>> On Nov 8, 2016, at 11:41 AM, Jochen Theodorou <blackdrag@gmx.org> wrote:
>>
>> what about an overloaded with:
>>
>>
>> +1
>>
>> Or even something like:
>>
>> myObject.with { ... } // current behaviour
>> myObject.with(return:this) { ... } // returns this when finished.
>> myObejct.with(return:new Object()) { ... } // returns a new Object when
>> finished.
>>
>> This particular syntax would take a bit of extra parser arm waving since
>> the `return` keyword is being used differently in this context.
>>
>> Keith
>>
>>
>> myObject.with(true) {
>>   // some code
>> }
>>
>>
>> or:
>>
>> myObject.with(returnThis:true) {
>>   // some code
>> }
>>
>>
>> or... well I am sure there are many variants... just want to know if
>> something like this doesn't cut it.
>>
>> bye Jochen
>>
>>
>>
>
>

Mime
View raw message