Yes this is what I did for the change sorter. I do not like this DSL like way 
of passing block over block over block
over blocks.

I love blocks but methods are named blocks and I prefer them.

Stef

> biut that method can be written: 
> 
> aMenu addGroup: (MenuGroupModel new 
>       addItem: (MenuItemModel new 
>               name: 'Browse Full';
>               action: [ self browseSelectedObject ];
>               shortcut: $b command mac | $b alt win | $b alt unix);
>       addItem: (MenuItem new 
>               name: 'Browse Class';
>               action: [ self browseSelectedObjectClass ])).
> 
> and you do not have to declare variables for that (and is a lot better than 
> using a block, IMO). 
> 
> 
> 
> On Nov 12, 2013, at 9:36 AM, Benjamin <[email protected]> 
> wrote:
> 
>> One can just use an object too.
>> 
>> It’s just that otherwise, it pollutes a bit the method with tons of inst vars
>> (and then you forget to use them :P)
>> 
>> Ben
>> 
>> On 12 Nov 2013, at 13:05, Esteban Lorenzano <[email protected]> wrote:
>> 
>>> 
>>> On Nov 12, 2013, at 4:22 AM, Benjamin 
>>> <[email protected]> wrote:
>>> 
>>>> It is not necessary better, but it saves you from having hundreds of temp 
>>>> vars :)
>>>> 
>>>> Ben
>>>> 
>>>> On 12 Nov 2013, at 01:49, Stéphane Ducasse <[email protected]> 
>>>> wrote:
>>>> 
>>>>>> 
>>>>>> Example:
>>>>>> aMenu addGroup: [ :aGroup |
>>>>>>  aGroup addItem: [ :anItem |
>>>>>>          anItem name: 'Browse Full';
>>>>>>          action: [ self browseSelectedObject ];
>>>>>>          shortcut: $b command mac | $b alt win | $b alt unix  ].
>>>>>>  aGroup addItem: [ :anItem |
>>>>>>          anItem name: 'Browse Class';
>>>>>>          action: [ self browseSelectedObjectClass ] ] ].
>>>>>>  
>>>>> 
>>>>> I do not see the value of passing block to add element to groups 
>>>>> why not the normal way i.e. passing an object. I do not get why executing
>>>>> a block with an object is better?
>>> 
>>> he, I thought the same :)
>>> 
>>>>> 
>>>>> Stef
>>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to