[squeak-dev] The Trunk: EToys-tfel.253.mcz

Kjell Godo squeaklist at gmail.com
Mon Sep 26 15:48:50 UTC 2016


it becomes like a programming language.
Could it be used to allow restricted user customization.
Like a scripting language given some kind of
hierarchical editor.

On Monday, September 26, 2016, Kjell Godo <squeaklist at gmail.com> wrote:

> When is a MessageSend better than a BlockClosure?
> I would like to know.  Because you can change it?
> You can look inside.  What if the arguments were Blocks.
> You could easily make a tree of MessageSends
> (
> ( M message1:( M message2: obj2 )
>       message1:( M message3: obj31
>                               message3: obj32 )
> ) receiverDeep:{ r1. r2. r3 }"<---[ left right top down traverse ]"
> ) valueDeep
>
> On Monday, September 26, 2016, Kjell Godo <squeaklist at gmail.com
> <javascript:_e(%7B%7D,'cvml','squeaklist at gmail.com');>> wrote:
>
>> M class>>doesNotUnderstand: aMessage ^aMessage asMessageSend !
>>
>> ( ( M som:eMe:ssa:ge: inputs ) receiver: obj )
>>
>> On Monday, September 26, 2016, Kjell Godo <squeaklist at gmail.com> wrote:
>>
>>> M>>doesNotUnderstand: aMessage ^aMessage asMessageSend !
>>>
>>> ( M handUserSorterMorphForProjectNamed: nil )"<---[ easy way to make a
>>> MessageSend ]"
>>> ...
>>>      sendTo: obj
>>>
>>> On Monday, September 26, 2016, <commits at source.squeak.org> wrote:
>>>
>>>> Tim Felgentreff uploaded a new version of EToys to project The Trunk:
>>>> http://source.squeak.org/trunk/EToys-tfel.253.mcz
>>>>
>>>> ==================== Summary ====================
>>>>
>>>> Name: EToys-tfel.253
>>>> Author: tfel
>>>> Time: 26 September 2016, 11:40:48.856552 am
>>>> UUID: a00694aa-7017-b444-a8d0-6671ec171efd
>>>> Ancestors: EToys-tfel.252
>>>>
>>>> delete the project saving morph before saving
>>>>
>>>> =============== Diff against EToys-tfel.252 ===============
>>>>
>>>> Item was changed:
>>>>   ----- Method: EToyProjectDetailsMorph>>doOK (in category 'utilities')
>>>> -----
>>>>   doOK
>>>>         "User hit the ok button in the project-info dialog.  Store the
>>>> updated project-info back in the project. Call the message-send residing in
>>>> the receiver's actionBlock to carry out any subsequent desired task.  Note
>>>> that this method sets the 'arguments' of the message-send in the
>>>> actionBlock"
>>>>
>>>>         | args actionSelector  |
>>>>         self validateTheProjectName ifFalse: [^false].
>>>>         projectDetails := self copyOutDetails.
>>>>
>>>>         theProject acceptProjectDetails: projectDetails.  "Make sure
>>>> project & world feel the changes"
>>>> +
>>>> +       self delete.
>>>> -
>>>>         actionBlock isMessageSend "new way -- hopefully all cases"
>>>>                 ifTrue:  "please excuse this ugly, non-modular code..."
>>>>                         [actionSelector := actionBlock selector.
>>>>                         args := (actionSelector =
>>>> #handUserSorterMorphForProjectNamed:)
>>>>                                 ifTrue:
>>>>                                         [{theProject name}]
>>>>                                 ifFalse:
>>>>                                         [actionSelector numArgs = 0
>>>>                                                 ifTrue:
>>>>                                                         [nil]
>>>>                                                 ifFalse:
>>>>                                                         [Array with:
>>>> projectDetails]].
>>>>                         actionBlock arguments: args.
>>>>                         actionBlock value]
>>>>
>>>>                 ifFalse:  "Old way, with actionBlock actually a block
>>>> of one argument.  This should no longer occur."
>>>> +                       [actionBlock value: projectDetails].!
>>>> -                       [actionBlock value: projectDetails].
>>>> -
>>>> -       self delete!
>>>>
>>>> Item was changed:
>>>>   ----- Method: EToyProjectQueryMorph>>doOK (in category 'ok button
>>>> hit') -----
>>>>   doOK
>>>>         "User hit the ok button in the project-query dialog."
>>>>
>>>>         | details |
>>>>         details := self copyOutDetails.
>>>>
>>>> +       self delete.
>>>>         actionBlock isMessageSend "new way -- hopefully all cases"
>>>>                 ifTrue:
>>>>                         [actionBlock arguments: {details. actionBlock
>>>> arguments second}.
>>>>                         actionBlock value]
>>>>
>>>>                 ifFalse:  "Old way, with actionBlock actually a block
>>>> of one argument.  This should no longer occur."
>>>> +                       [actionBlock value: details].!
>>>> -                       [actionBlock value: details].
>>>> -
>>>> -       self delete!
>>>>
>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20160926/cbd22957/attachment.htm


More information about the Squeak-dev mailing list