From: Matt Todd Date: 2006-08-28T03:08:36+09:00 Subject: Re: Matz' Wild Ideas: Annotations class X def foo arg1 # do stuff here end annotate :foo do requires "arg1 >= 10" # or whatever it takes overriding true visibility public # though I think what we've now works well end end I like your last try, Trans, but it just doesn't sit too well with me. This example above is about as verbose as I'd like it... #annotate being a class method that actively annotates the methods properties. This way _could_ be easier to implement, and less destructive of the current syntax. (I like that.) Plus, it's a method, so it doesn't matter where or when you call it. Also, I don't think we should duplicate visibilitiy... there's a reason we have what we already have for defining public and private and protected. One of my biggest concerns/thoughts, really, is how to preserve the test "arg1 >= 10" to be both reprintable and testable. I mean, I guess it could be done with some hacking to get the binding of the method and then #eval it with that binding, but still, you're passing a string as a test. I understand and agree with you, Francis: annotations open up quite a bit. In fact, it's a step towards good AOP (Aspect Oriented Programming). (Or am I thinking of another term... crap, where's my PragProg book!?) But, on configuration vs. convention, it would be perfectly sufficient to have a conventional annotation, and from there, anything specific just overrides it. That way we don't have to worry about breakage and for those that are perfectly happy with the way things are now (a good majority of the people) can go on their merry way. Is there any other way!? :) Cheers, M.T.