[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-talk
Subject:    Re: DesignByContract (was RE: utilizing ++ and -- for comments)
From:       Florian Gross <flgr () ccan ! de>
Date:       2005-02-17 13:29:52
Message-ID: 37jk9bF5dckjeU1 () individual ! net
[Download RAW message or body]

gabriele renzi wrote:

>> Wondering if you have a way to do these ...
>>
>> How would the check :pre get access to the method parameters?
>>
>> And how would the check :post access the return, or the params, or the
>> initial values (instance vars etc.)?
> 
> I guess florian would overwrite the method #pop with a new one which 
> does bot the pre-code and the original code. Mauricio Fernandez showed a 
> nice approach to this which did not need eval() quite a long time ago 
> (even if he presented it as poor man's AOP)

This would be the basic way of doing it -- note that I'm not sure about 
having pre-checks access to arguments -- after all the signature is for 
ensuring the basic consistency of those. It would still be nice to have 
them, though.

Regarding in-variants: I'll probably end up wrapping all methods like 
with the pre/post checks and having a method_added hook for wrapping 
newly added methods as well.

I've not thought about all the details (what about inheritance) and so 
on yet -- it will probably be easier for me to think about those once I 
have a basic implementation I can toy with.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic