Port of builders to Magritte-Model

Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Port of builders to Magritte-Model

DiegoLont
Hi all,

As announced previously I ported the builder back to Magritte, as I believe it was a missing piece in Magritte. A mail does not suffice to give the details, and in the past I did 2 presentations on this topic (dry-ing Magritte, https://www.slideshare.net/esug/drying-magritte?next_slideshow=1).

I also extended the tutorial (build in with QC-Magritte, load QC-Magritte, and start a web-browser on http://localhost:8080/) with a chapter “technical details” where I made another effort in explaining why we need builders. If this gives questions, please ask them.

Also I am not 100% sure a builder is the correct term: so if there are people with better suggestions, please post them.

The coming weeks I will fill in the last blanks:
- add testcases specific to the builder. The old ones still run, ensuring no builders == no change.
- more work on tutorial.

Of course it motivates me, when people comment or ask questions, so I know it is used. So thanks Udo for asking a question concerning QCMagritte, this helped me at least finish this far.

Regards,
Diego

_______________________________________________
Magritte, Pier and Related Tools ...
https://www.list.inf.unibe.ch/listinfo/smallwiki
Reply | Threaded
Open this post in threaded view
|

Re: Port of builders to Magritte-Model

Franz Josef Konrad-2
What is the best way to test the current code?

What I have done fails:

1. Load via Pharo Launcher the latest Build of QCMagritte #3524 for
Pharo 5.0
2. Add in the Seaside Control Panel the ZnZincServerAdaptor with a valid
port
3. Start the Server
4. The Seaside config panel is working correct at
http://localhost:18080/config
5. But going directly to http://localhost:18080/, I'm getting the
following DNU:

MAPriorityContainer(Object)>>doesNotUnderstand: #descriptionBuilder
QCTutorialModel(QCObject)>>componentClassForContainer:
[ :each | anObject perform: each with: container ] in [ container :=
anObject perform: containerSelector.
extensionSelectors
        do: [ :each | anObject perform: each with: container ] ] in
MAPragmaBuilder>>buildContainer: in Block: [ :each | anObject perform:
each with: container ]...etc...
Array(SequenceableCollection)>>do:
[ container := anObject perform: containerSelector.
extensionSelectors
        do: [ :each | anObject perform: each with: container ] ] in
MAPragmaBuilder>>buildContainer: in Block: [ container := anObject
perform: containerSelector...etc...
BlockClosure>>on:do:
MADynamicDescribedObject class(MADynamicVariable class)>>use:during:
MAPragmaBuilder>>buildContainer:
MAPragmaBuilder>>build:cache:
[ self build: anObject cache: cache ] in [ ^ cache
        at: anObject
        ifAbsentPut: [ self build: anObject cache: cache ] ] in
MAPragmaBuilder>>for: in Block: [ self build: anObject cache: cache ]
[ self at: key put: aBlock value ] in
IdentityDictionary(Dictionary)>>at:ifAbsentPut: in Block: [ self at: key
put: aBlock value ]
IdentityDictionary(Dictionary)>>at:ifAbsent:
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
[ ^ cache
        at: anObject
        ifAbsentPut: [ self build: anObject cache: cache ] ] in
MAPragmaBuilder>>for: in Block: [ ^ cache...
BlockClosure>>on:do:
MADynamicDescriptionCache class(MADynamicVariable class)>>use:during:
MAPragmaBuilder>>for:
MAPragmaBuilder class>>for:
QCTutorialModel(Object)>>basicMagritteDescription
QCTutorialModel(Object)>>magritteDescription
QCTutorialModel(QCApplicationModel)>>basicRoots
QCTutorialModel(QCApplicationModel)>>roots
QCTutorialApplication(QCApplication)>>initializeMenu
QCTutorialApplication(QCApplication)>>initialize
QCTutorialApplication class(GRObject class)>>new
[ self rootClass new ] in WAInitialRenderLoopContinuation>>createRoot in
Block: [ self rootClass new ]
GRSmallDictionary>>at:ifAbsent:
WARequestContext>>rootComponentIfAbsent:
WAInitialRenderLoopContinuation>>createRoot
WAInitialRenderLoopContinuation>>basicPerformAction

Regards,
Franz Josef


Am 03.05.2017 um 21:57 schrieb Diego Lont:

> Hi all,
>
> As announced previously I ported the builder back to Magritte, as I believe it was a missing piece in Magritte. A mail does not suffice to give the details, and in the past I did 2 presentations on this topic (dry-ing Magritte, https://www.slideshare.net/esug/drying-magritte?next_slideshow=1).
>
> I also extended the tutorial (build in with QC-Magritte, load QC-Magritte, and start a web-browser on http://localhost:8080/) with a chapter “technical details” where I made another effort in explaining why we need builders. If this gives questions, please ask them.
>
> Also I am not 100% sure a builder is the correct term: so if there are people with better suggestions, please post them.
>
> The coming weeks I will fill in the last blanks:
> - add testcases specific to the builder. The old ones still run, ensuring no builders == no change.
> - more work on tutorial.
>
> Of course it motivates me, when people comment or ask questions, so I know it is used. So thanks Udo for asking a question concerning QCMagritte, this helped me at least finish this far.
>
> Regards,
> Diego
>
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.list.inf.unibe.ch/listinfo/smallwiki
>

_______________________________________________
Magritte, Pier and Related Tools ...
https://www.list.inf.unibe.ch/listinfo/smallwiki
Reply | Threaded
Open this post in threaded view
|

Re: Port of builders to Magritte-Model

DiegoLont
Hi Franz,

It seems I forgot something last thursday: I moved some code, but did not update the configuration. Today not much time, but please load last version of Magritte-Model and Magritte-Seaside to resolve this problem.

Will update the config next tuesday.

Regards,
Diego

> On 04 May 2017, at 10:00, Franz Josef Konrad <[hidden email]> wrote:
>
> What is the best way to test the current code?
>
> What I have done fails:
>
> 1. Load via Pharo Launcher the latest Build of QCMagritte #3524 for Pharo 5.0
> 2. Add in the Seaside Control Panel the ZnZincServerAdaptor with a valid port
> 3. Start the Server
> 4. The Seaside config panel is working correct at http://localhost:18080/config
> 5. But going directly to http://localhost:18080/, I'm getting the following DNU:
>
> MAPriorityContainer(Object)>>doesNotUnderstand: #descriptionBuilder
> QCTutorialModel(QCObject)>>componentClassForContainer:
> [ :each | anObject perform: each with: container ] in [ container := anObject perform: containerSelector.
> extensionSelectors
> do: [ :each | anObject perform: each with: container ] ] in MAPragmaBuilder>>buildContainer: in Block: [ :each | anObject perform: each with: container ]...etc...
> Array(SequenceableCollection)>>do:
> [ container := anObject perform: containerSelector.
> extensionSelectors
> do: [ :each | anObject perform: each with: container ] ] in MAPragmaBuilder>>buildContainer: in Block: [ container := anObject perform: containerSelector...etc...
> BlockClosure>>on:do:
> MADynamicDescribedObject class(MADynamicVariable class)>>use:during:
> MAPragmaBuilder>>buildContainer:
> MAPragmaBuilder>>build:cache:
> [ self build: anObject cache: cache ] in [ ^ cache
> at: anObject
> ifAbsentPut: [ self build: anObject cache: cache ] ] in MAPragmaBuilder>>for: in Block: [ self build: anObject cache: cache ]
> [ self at: key put: aBlock value ] in IdentityDictionary(Dictionary)>>at:ifAbsentPut: in Block: [ self at: key put: aBlock value ]
> IdentityDictionary(Dictionary)>>at:ifAbsent:
> IdentityDictionary(Dictionary)>>at:ifAbsentPut:
> [ ^ cache
> at: anObject
> ifAbsentPut: [ self build: anObject cache: cache ] ] in MAPragmaBuilder>>for: in Block: [ ^ cache...
> BlockClosure>>on:do:
> MADynamicDescriptionCache class(MADynamicVariable class)>>use:during:
> MAPragmaBuilder>>for:
> MAPragmaBuilder class>>for:
> QCTutorialModel(Object)>>basicMagritteDescription
> QCTutorialModel(Object)>>magritteDescription
> QCTutorialModel(QCApplicationModel)>>basicRoots
> QCTutorialModel(QCApplicationModel)>>roots
> QCTutorialApplication(QCApplication)>>initializeMenu
> QCTutorialApplication(QCApplication)>>initialize
> QCTutorialApplication class(GRObject class)>>new
> [ self rootClass new ] in WAInitialRenderLoopContinuation>>createRoot in Block: [ self rootClass new ]
> GRSmallDictionary>>at:ifAbsent:
> WARequestContext>>rootComponentIfAbsent:
> WAInitialRenderLoopContinuation>>createRoot
> WAInitialRenderLoopContinuation>>basicPerformAction
>
> Regards,
> Franz Josef
>
>
> Am 03.05.2017 um 21:57 schrieb Diego Lont:
>> Hi all,
>>
>> As announced previously I ported the builder back to Magritte, as I believe it was a missing piece in Magritte. A mail does not suffice to give the details, and in the past I did 2 presentations on this topic (dry-ing Magritte, https://www.slideshare.net/esug/drying-magritte?next_slideshow=1).
>>
>> I also extended the tutorial (build in with QC-Magritte, load QC-Magritte, and start a web-browser on http://localhost:8080/) with a chapter “technical details” where I made another effort in explaining why we need builders. If this gives questions, please ask them.
>>
>> Also I am not 100% sure a builder is the correct term: so if there are people with better suggestions, please post them.
>>
>> The coming weeks I will fill in the last blanks:
>> - add testcases specific to the builder. The old ones still run, ensuring no builders == no change.
>> - more work on tutorial.
>>
>> Of course it motivates me, when people comment or ask questions, so I know it is used. So thanks Udo for asking a question concerning QCMagritte, this helped me at least finish this far.
>>
>> Regards,
>> Diego
>>
>> _______________________________________________
>> Magritte, Pier and Related Tools ...
>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>>
>
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.list.inf.unibe.ch/listinfo/smallwiki

_______________________________________________
Magritte, Pier and Related Tools ...
https://www.list.inf.unibe.ch/listinfo/smallwiki
Reply | Threaded
Open this post in threaded view
|

Re: Port of builders to Magritte-Model

Udo Schneider
Hi Diego,

it seems the MABuilder refactoring broke a whole lot more. The most
obvious thing I see is that all widgets are not using Bootstrap anymore.
I assume the "QCSomethingBoostrapBuilder" isn't traversing the
description tree anymore.

CU,

Udo


Am 07/05/17 um 20:41 schrieb Diego Lont:

> Hi Franz,
>
> It seems I forgot something last thursday: I moved some code, but did not update the configuration. Today not much time, but please load last version of Magritte-Model and Magritte-Seaside to resolve this problem.
>
> Will update the config next tuesday.
>
> Regards,
> Diego
>
>> On 04 May 2017, at 10:00, Franz Josef Konrad <[hidden email]> wrote:
>>
>> What is the best way to test the current code?
>>
>> What I have done fails:
>>
>> 1. Load via Pharo Launcher the latest Build of QCMagritte #3524 for Pharo 5.0
>> 2. Add in the Seaside Control Panel the ZnZincServerAdaptor with a valid port
>> 3. Start the Server
>> 4. The Seaside config panel is working correct at http://localhost:18080/config
>> 5. But going directly to http://localhost:18080/, I'm getting the following DNU:
>>
>> MAPriorityContainer(Object)>>doesNotUnderstand: #descriptionBuilder
>> QCTutorialModel(QCObject)>>componentClassForContainer:
>> [ :each | anObject perform: each with: container ] in [ container := anObject perform: containerSelector.
>> extensionSelectors
>> do: [ :each | anObject perform: each with: container ] ] in MAPragmaBuilder>>buildContainer: in Block: [ :each | anObject perform: each with: container ]...etc...
>> Array(SequenceableCollection)>>do:
>> [ container := anObject perform: containerSelector.
>> extensionSelectors
>> do: [ :each | anObject perform: each with: container ] ] in MAPragmaBuilder>>buildContainer: in Block: [ container := anObject perform: containerSelector...etc...
>> BlockClosure>>on:do:
>> MADynamicDescribedObject class(MADynamicVariable class)>>use:during:
>> MAPragmaBuilder>>buildContainer:
>> MAPragmaBuilder>>build:cache:
>> [ self build: anObject cache: cache ] in [ ^ cache
>> at: anObject
>> ifAbsentPut: [ self build: anObject cache: cache ] ] in MAPragmaBuilder>>for: in Block: [ self build: anObject cache: cache ]
>> [ self at: key put: aBlock value ] in IdentityDictionary(Dictionary)>>at:ifAbsentPut: in Block: [ self at: key put: aBlock value ]
>> IdentityDictionary(Dictionary)>>at:ifAbsent:
>> IdentityDictionary(Dictionary)>>at:ifAbsentPut:
>> [ ^ cache
>> at: anObject
>> ifAbsentPut: [ self build: anObject cache: cache ] ] in MAPragmaBuilder>>for: in Block: [ ^ cache...
>> BlockClosure>>on:do:
>> MADynamicDescriptionCache class(MADynamicVariable class)>>use:during:
>> MAPragmaBuilder>>for:
>> MAPragmaBuilder class>>for:
>> QCTutorialModel(Object)>>basicMagritteDescription
>> QCTutorialModel(Object)>>magritteDescription
>> QCTutorialModel(QCApplicationModel)>>basicRoots
>> QCTutorialModel(QCApplicationModel)>>roots
>> QCTutorialApplication(QCApplication)>>initializeMenu
>> QCTutorialApplication(QCApplication)>>initialize
>> QCTutorialApplication class(GRObject class)>>new
>> [ self rootClass new ] in WAInitialRenderLoopContinuation>>createRoot in Block: [ self rootClass new ]
>> GRSmallDictionary>>at:ifAbsent:
>> WARequestContext>>rootComponentIfAbsent:
>> WAInitialRenderLoopContinuation>>createRoot
>> WAInitialRenderLoopContinuation>>basicPerformAction
>>
>> Regards,
>> Franz Josef
>>
>>
>> Am 03.05.2017 um 21:57 schrieb Diego Lont:
>>> Hi all,
>>>
>>> As announced previously I ported the builder back to Magritte, as I believe it was a missing piece in Magritte. A mail does not suffice to give the details, and in the past I did 2 presentations on this topic (dry-ing Magritte, https://www.slideshare.net/esug/drying-magritte?next_slideshow=1).
>>>
>>> I also extended the tutorial (build in with QC-Magritte, load QC-Magritte, and start a web-browser on http://localhost:8080/) with a chapter “technical details” where I made another effort in explaining why we need builders. If this gives questions, please ask them.
>>>
>>> Also I am not 100% sure a builder is the correct term: so if there are people with better suggestions, please post them.
>>>
>>> The coming weeks I will fill in the last blanks:
>>> - add testcases specific to the builder. The old ones still run, ensuring no builders == no change.
>>> - more work on tutorial.
>>>
>>> Of course it motivates me, when people comment or ask questions, so I know it is used. So thanks Udo for asking a question concerning QCMagritte, this helped me at least finish this far.
>>>
>>> Regards,
>>> Diego
>>>
>>> _______________________________________________
>>> Magritte, Pier and Related Tools ...
>>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>>>
>>
>> _______________________________________________
>> Magritte, Pier and Related Tools ...
>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.list.inf.unibe.ch/listinfo/smallwiki
>


_______________________________________________
Magritte, Pier and Related Tools ...
https://www.list.inf.unibe.ch/listinfo/smallwiki
Reply | Threaded
Open this post in threaded view
|

Re: Port of builders to Magritte-Model

Stephan Eggermont-3
Yes, if not everything is loaded that is likely to happen. Sorry for the delay in fixing, we're a bit busy atm

Stephan

Verstuurd vanaf mijn iPhone

> Op 8 mei 2017 om 21:50 heeft Udo Schneider <[hidden email]> het volgende geschreven:
>
> Hi Diego,
>
> it seems the MABuilder refactoring broke a whole lot more. The most obvious thing I see is that all widgets are not using Bootstrap anymore. I assume the "QCSomethingBoostrapBuilder" isn't traversing the description tree anymore.
>
> CU,
>
> Udo
>
>
>> Am 07/05/17 um 20:41 schrieb Diego Lont:
>> Hi Franz,
>> It seems I forgot something last thursday: I moved some code, but did not update the configuration. Today not much time, but please load last version of Magritte-Model and Magritte-Seaside to resolve this problem.
>> Will update the config next tuesday.
>> Regards,
>> Diego
>>> On 04 May 2017, at 10:00, Franz Josef Konrad <[hidden email]> wrote:
>>>
>>> What is the best way to test the current code?
>>>
>>> What I have done fails:
>>>
>>> 1. Load via Pharo Launcher the latest Build of QCMagritte #3524 for Pharo 5.0
>>> 2. Add in the Seaside Control Panel the ZnZincServerAdaptor with a valid port
>>> 3. Start the Server
>>> 4. The Seaside config panel is working correct at http://localhost:18080/config
>>> 5. But going directly to http://localhost:18080/, I'm getting the following DNU:
>>>
>>> MAPriorityContainer(Object)>>doesNotUnderstand: #descriptionBuilder
>>> QCTutorialModel(QCObject)>>componentClassForContainer:
>>> [ :each | anObject perform: each with: container ] in [ container := anObject perform: containerSelector.
>>> extensionSelectors
>>>    do: [ :each | anObject perform: each with: container ] ] in MAPragmaBuilder>>buildContainer: in Block: [ :each | anObject perform: each with: container ]...etc...
>>> Array(SequenceableCollection)>>do:
>>> [ container := anObject perform: containerSelector.
>>> extensionSelectors
>>>    do: [ :each | anObject perform: each with: container ] ] in MAPragmaBuilder>>buildContainer: in Block: [ container := anObject perform: containerSelector...etc...
>>> BlockClosure>>on:do:
>>> MADynamicDescribedObject class(MADynamicVariable class)>>use:during:
>>> MAPragmaBuilder>>buildContainer:
>>> MAPragmaBuilder>>build:cache:
>>> [ self build: anObject cache: cache ] in [ ^ cache
>>>    at: anObject
>>>    ifAbsentPut: [ self build: anObject cache: cache ] ] in MAPragmaBuilder>>for: in Block: [ self build: anObject cache: cache ]
>>> [ self at: key put: aBlock value ] in IdentityDictionary(Dictionary)>>at:ifAbsentPut: in Block: [ self at: key put: aBlock value ]
>>> IdentityDictionary(Dictionary)>>at:ifAbsent:
>>> IdentityDictionary(Dictionary)>>at:ifAbsentPut:
>>> [ ^ cache
>>>    at: anObject
>>>    ifAbsentPut: [ self build: anObject cache: cache ] ] in MAPragmaBuilder>>for: in Block: [ ^ cache...
>>> BlockClosure>>on:do:
>>> MADynamicDescriptionCache class(MADynamicVariable class)>>use:during:
>>> MAPragmaBuilder>>for:
>>> MAPragmaBuilder class>>for:
>>> QCTutorialModel(Object)>>basicMagritteDescription
>>> QCTutorialModel(Object)>>magritteDescription
>>> QCTutorialModel(QCApplicationModel)>>basicRoots
>>> QCTutorialModel(QCApplicationModel)>>roots
>>> QCTutorialApplication(QCApplication)>>initializeMenu
>>> QCTutorialApplication(QCApplication)>>initialize
>>> QCTutorialApplication class(GRObject class)>>new
>>> [ self rootClass new ] in WAInitialRenderLoopContinuation>>createRoot in Block: [ self rootClass new ]
>>> GRSmallDictionary>>at:ifAbsent:
>>> WARequestContext>>rootComponentIfAbsent:
>>> WAInitialRenderLoopContinuation>>createRoot
>>> WAInitialRenderLoopContinuation>>basicPerformAction
>>>
>>> Regards,
>>> Franz Josef
>>>
>>>
>>>> Am 03.05.2017 um 21:57 schrieb Diego Lont:
>>>> Hi all,
>>>>
>>>> As announced previously I ported the builder back to Magritte, as I believe it was a missing piece in Magritte. A mail does not suffice to give the details, and in the past I did 2 presentations on this topic (dry-ing Magritte, https://www.slideshare.net/esug/drying-magritte?next_slideshow=1).
>>>>
>>>> I also extended the tutorial (build in with QC-Magritte, load QC-Magritte, and start a web-browser on http://localhost:8080/) with a chapter “technical details” where I made another effort in explaining why we need builders. If this gives questions, please ask them.
>>>>
>>>> Also I am not 100% sure a builder is the correct term: so if there are people with better suggestions, please post them.
>>>>
>>>> The coming weeks I will fill in the last blanks:
>>>> - add testcases specific to the builder. The old ones still run, ensuring no builders == no change.
>>>> - more work on tutorial.
>>>>
>>>> Of course it motivates me, when people comment or ask questions, so I know it is used. So thanks Udo for asking a question concerning QCMagritte, this helped me at least finish this far.
>>>>
>>>> Regards,
>>>> Diego
>>>>
>>>> _______________________________________________
>>>> Magritte, Pier and Related Tools ...
>>>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>>>>
>>>
>>> _______________________________________________
>>> Magritte, Pier and Related Tools ...
>>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>> _______________________________________________
>> Magritte, Pier and Related Tools ...
>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>
>
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.list.inf.unibe.ch/listinfo/smallwiki

_______________________________________________
Magritte, Pier and Related Tools ...
https://www.list.inf.unibe.ch/listinfo/smallwiki
Reply | Threaded
Open this post in threaded view
|

Re: Port of builders to Magritte-Model

Udo Schneider
Hi Stephan,

 > Sorry for the delay in fixing, we're a bit busy atm
N/P - I manually reverted to a pre MABuilder configuration manually.
Works :-)

CU,

Udo



Am 09/05/17 um 08:23 schrieb Stephan Eggermont:

> Yes, if not everything is loaded that is likely to happen. Sorry for the delay in fixing, we're a bit busy atm
>
> Stephan
>
> Verstuurd vanaf mijn iPhone
>
>> Op 8 mei 2017 om 21:50 heeft Udo Schneider <[hidden email]> het volgende geschreven:
>>
>> Hi Diego,
>>
>> it seems the MABuilder refactoring broke a whole lot more. The most obvious thing I see is that all widgets are not using Bootstrap anymore. I assume the "QCSomethingBoostrapBuilder" isn't traversing the description tree anymore.
>>
>> CU,
>>
>> Udo
>>
>>
>>> Am 07/05/17 um 20:41 schrieb Diego Lont:
>>> Hi Franz,
>>> It seems I forgot something last thursday: I moved some code, but did not update the configuration. Today not much time, but please load last version of Magritte-Model and Magritte-Seaside to resolve this problem.
>>> Will update the config next tuesday.
>>> Regards,
>>> Diego
>>>> On 04 May 2017, at 10:00, Franz Josef Konrad <[hidden email]> wrote:
>>>>
>>>> What is the best way to test the current code?
>>>>
>>>> What I have done fails:
>>>>
>>>> 1. Load via Pharo Launcher the latest Build of QCMagritte #3524 for Pharo 5.0
>>>> 2. Add in the Seaside Control Panel the ZnZincServerAdaptor with a valid port
>>>> 3. Start the Server
>>>> 4. The Seaside config panel is working correct at http://localhost:18080/config
>>>> 5. But going directly to http://localhost:18080/, I'm getting the following DNU:
>>>>
>>>> MAPriorityContainer(Object)>>doesNotUnderstand: #descriptionBuilder
>>>> QCTutorialModel(QCObject)>>componentClassForContainer:
>>>> [ :each | anObject perform: each with: container ] in [ container := anObject perform: containerSelector.
>>>> extensionSelectors
>>>>     do: [ :each | anObject perform: each with: container ] ] in MAPragmaBuilder>>buildContainer: in Block: [ :each | anObject perform: each with: container ]...etc...
>>>> Array(SequenceableCollection)>>do:
>>>> [ container := anObject perform: containerSelector.
>>>> extensionSelectors
>>>>     do: [ :each | anObject perform: each with: container ] ] in MAPragmaBuilder>>buildContainer: in Block: [ container := anObject perform: containerSelector...etc...
>>>> BlockClosure>>on:do:
>>>> MADynamicDescribedObject class(MADynamicVariable class)>>use:during:
>>>> MAPragmaBuilder>>buildContainer:
>>>> MAPragmaBuilder>>build:cache:
>>>> [ self build: anObject cache: cache ] in [ ^ cache
>>>>     at: anObject
>>>>     ifAbsentPut: [ self build: anObject cache: cache ] ] in MAPragmaBuilder>>for: in Block: [ self build: anObject cache: cache ]
>>>> [ self at: key put: aBlock value ] in IdentityDictionary(Dictionary)>>at:ifAbsentPut: in Block: [ self at: key put: aBlock value ]
>>>> IdentityDictionary(Dictionary)>>at:ifAbsent:
>>>> IdentityDictionary(Dictionary)>>at:ifAbsentPut:
>>>> [ ^ cache
>>>>     at: anObject
>>>>     ifAbsentPut: [ self build: anObject cache: cache ] ] in MAPragmaBuilder>>for: in Block: [ ^ cache...
>>>> BlockClosure>>on:do:
>>>> MADynamicDescriptionCache class(MADynamicVariable class)>>use:during:
>>>> MAPragmaBuilder>>for:
>>>> MAPragmaBuilder class>>for:
>>>> QCTutorialModel(Object)>>basicMagritteDescription
>>>> QCTutorialModel(Object)>>magritteDescription
>>>> QCTutorialModel(QCApplicationModel)>>basicRoots
>>>> QCTutorialModel(QCApplicationModel)>>roots
>>>> QCTutorialApplication(QCApplication)>>initializeMenu
>>>> QCTutorialApplication(QCApplication)>>initialize
>>>> QCTutorialApplication class(GRObject class)>>new
>>>> [ self rootClass new ] in WAInitialRenderLoopContinuation>>createRoot in Block: [ self rootClass new ]
>>>> GRSmallDictionary>>at:ifAbsent:
>>>> WARequestContext>>rootComponentIfAbsent:
>>>> WAInitialRenderLoopContinuation>>createRoot
>>>> WAInitialRenderLoopContinuation>>basicPerformAction
>>>>
>>>> Regards,
>>>> Franz Josef
>>>>
>>>>
>>>>> Am 03.05.2017 um 21:57 schrieb Diego Lont:
>>>>> Hi all,
>>>>>
>>>>> As announced previously I ported the builder back to Magritte, as I believe it was a missing piece in Magritte. A mail does not suffice to give the details, and in the past I did 2 presentations on this topic (dry-ing Magritte, https://www.slideshare.net/esug/drying-magritte?next_slideshow=1).
>>>>>
>>>>> I also extended the tutorial (build in with QC-Magritte, load QC-Magritte, and start a web-browser on http://localhost:8080/) with a chapter “technical details” where I made another effort in explaining why we need builders. If this gives questions, please ask them.
>>>>>
>>>>> Also I am not 100% sure a builder is the correct term: so if there are people with better suggestions, please post them.
>>>>>
>>>>> The coming weeks I will fill in the last blanks:
>>>>> - add testcases specific to the builder. The old ones still run, ensuring no builders == no change.
>>>>> - more work on tutorial.
>>>>>
>>>>> Of course it motivates me, when people comment or ask questions, so I know it is used. So thanks Udo for asking a question concerning QCMagritte, this helped me at least finish this far.
>>>>>
>>>>> Regards,
>>>>> Diego
>>>>>
>>>>> _______________________________________________
>>>>> Magritte, Pier and Related Tools ...
>>>>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>>>>>
>>>>
>>>> _______________________________________________
>>>> Magritte, Pier and Related Tools ...
>>>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>>> _______________________________________________
>>> Magritte, Pier and Related Tools ...
>>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>>
>>
>> _______________________________________________
>> Magritte, Pier and Related Tools ...
>> https://www.list.inf.unibe.ch/listinfo/smallwiki
>
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.list.inf.unibe.ch/listinfo/smallwiki
>


_______________________________________________
Magritte, Pier and Related Tools ...
https://www.list.inf.unibe.ch/listinfo/smallwiki
Reply | Threaded
Open this post in threaded view
|

Re: Port of builders to Magritte-Model

DiegoLont

> On 09 May 2017, at 20:07, Udo Schneider <[hidden email]> wrote:
>
> Hi Stephan,
>
> > Sorry for the delay in fixing, we're a bit busy atm
> N/P - I manually reverted to a pre MABuilder configuration manually. Works :-)
>
> CU,
>
> Udo
>

Adapting the configuration was a bit more work than anticipated. At least the #development and #stable version of QCMagritte are working again. I also updated the Magritte configuration, as it bothered me that the #stable version for pharo2, 3 and 4 had errors.

Udo,

I added you as a contributor on smalltalkhub for QCMagritte, so you can commit your bug fix.

Regards,
Diego
_______________________________________________
Magritte, Pier and Related Tools ...
https://www.list.inf.unibe.ch/listinfo/smallwiki