Hi,
This is just a one-liner to add to the framework, but that makes it even more fun: One-Shot links.
A link now can have the #optionOneShot, which means that it will de-install itself when activated for
the first time:
link := MetaLink new
�� �� �� �� �� �� �� �� metaObject: self;
�� �� �� �� �� �� �� �� options: #(optionOneShot);
�� �� �� �� �� �� �� �� selector: #tagExec.
The full test looks like this:
testLinkOneShot
�� �� �� �� | sendNode link |
�� �� �� �� sendNode := (ReflectivityExamples>>#exampleMethod) sendNodes first.
�� �� �� �� link := MetaLink new
�� �� �� �� �� �� �� �� metaObject: self;
�� �� �� �� �� �� �� �� options: #(optionOneShot);
�� �� �� �� �� �� �� �� selector: #tagExec.
�� �� �� �� sendNode link: link.
�� �� �� �� self assert: sendNode hasMetalink.
�� �� �� �� self assert: tag isNil.
�� �� �� �� self assert: (ReflectivityExamples new exampleMethod = 5).
�� �� �� �� self assert: (tag = #yes).
�� �� �� �� self deny: sendNode hasMetalink.
�� �� �� �� tag := nil.
�� �� �� �� self assert: (ReflectivityExamples new exampleMethod = 5).
�� �� �� �� self assert: tag isNil.
https://pharo.fogbugz.com/f/cases/16581/one-shot-links
Marcus