2016-04-26 15:07 GMT+02:00 Esteban Lorenzano <estebanlm@gmail.com>:
it is not what MetaLinks are for? I think is easier than Ghost nowadays⦠but not sure :)
look at
ReflectivityControlTest>>testBeforeSend
seems to be installing an interception âbefore sendâ, who is what you are asking for.
It depends if it is an interception before send or an interception before receive ;) If one is to change the method lookup, then this is done at the receiver end of the message send, and, then, I think a ghost is more appropriate. Or metalinks upon entry to the receiver method (i.e. method wrappers type of thing). Thierry
Esteban
ps: but I might be wrong⦠Marcus can explain better :)
On 26 Apr 2016, at 14:50, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi Steven,
2016-04-26 14:39 GMT+02:00 Steven Costiou <steven.costiou@kloum.io>:
Hello,
i am not new to Pharo nor to the list but this is the first time i speak here, so : hi =)
I started a phd a few month ago (with Alain Plantec) on context oriented programming and dynamic programs adaptation. I am using Pharo for my experiments and i would like to intercept messages sent to an object just before they get to their receiver. To be more specific, when #msg is sent to an object o, i want to be able to intercept it just before it is actually executed with the following objects at my disposal : the receiver (o), the message or selector, the sender. My objective by doing that is to (try to) change the lookup for a given method, and to be able to choose in which class the lookup will start.
I have been looking a bit and it does not seem to be a "simple" way to do that in Pharo. Is that even possible and if so, any advice on where i should look ?
The easiest would be to use proxy or ghost objects, which catches all message sends to a proxy of the real object and let you decide what to do with them. A recent announcement on Ghosts for Pharo 5 was done, maybe starting with that could be an idea.
http://forum.world.st/Ann-New-version-of-Ghost-td4886357.html
For old timers: wasn't Actalk done that way ?
Thierry
Thanks,
Steven.