Hi Martin,

Interesting solution but it feels a bit like a hack.
For the GTools we made a solution that triggers a custom announcer before and after a Monticello load.
We'll make a slice later today.��

Cheers,
Andrei

On Thu, Dec 3, 2015 at 3:46 PM, Martin Dias <tinchodias@gmail.com> wrote:
Hi,

Doru asked me how does Epicea listen this information, and I created a snippet to demo it *in a plain Pharo 5 image* (no need to load Epicea before). Maybe somebody else is interested, that's why I share it with everybody.

You can open a Transcript and evaluate the following snippet. After evaluation, you can add new methods in Nautilus and see the log in the Transcript. (The code is not very nice).

Cheers,
Martin



"Listen load start"
Job jobAnnouncer
when: JobStart
do: [ :aJobStart |
| owner |
owner := aJobStart job owner.

(owner isKindOf: MCVersionLoader)
ifTrue: [ ('Starting to load ', owner versions asArray asString) logCr ] ].
"Listen load end"
Job jobAnnouncer��
when: JobEnd
do: [ :aJobEnd |
| owner |
owner := aJobEnd job owner.

(owner isKindOf: MCVersionLoader)
ifTrue: [ ('Ending to load ', owner versions asArray asString) logCr ] ].

"Listen changes in the middle"
SystemAnnouncer uniqueInstance��
when: MethodAdded
do: [ :aMethodAdded |
| mcLoaderJobOrNil |
mcLoaderJobOrNil :=��
Job current
ifNil: [ nil ]
ifNotNil: [ :currentJob |
currentJob��
lookup: [ :job | job owner isKindOf: MCVersionLoader ]
ifNone: [ nil ] ].
(aMethodAdded methodAdded printString, ' --- ',
(mcLoaderJobOrNil
ifNil: [ 'no info' ]
ifNotNil: [ 'while loading ', mcLoaderJobOrNil owner versions asArray asString ])) logCr ].


"Try it loading"
Gofer it
smalltalkhubUser: 'MartinDias' project: 'AlarmClock';
package: 'AlarmClock';
load.