;) On Tue, Sep 26, 2017 at 1:28 PM, Ben Coman <[email protected]> wrote:
> Shhh... The first rule of meta-club is we don't talk about meta-club. > > > cheers -ben > > > On Mon, Sep 25, 2017 at 11:09 PM, Guillermo Polito < > [email protected]> wrote: > >> Why calling them meta-annotation and not just annotation? Annotations are >> in general already meta :) >> >> On Mon, Sep 25, 2017 at 5:01 PM, Denis Kudriashov <[email protected]> >> wrote: >> >>> Hi. >>> >>> I glad to present one class package which introduces reusable mechanism >>> for first class annotations. >>> >>> The project can be found on github https://github.com/dion >>> isiydk/ClassMetaAnnotation. >>> And I tried to describe why it is needed in my blog >>> http://dionisiydk.blogspot.fr/2017/09/class-meta-annotations.html. >>> >>> And here is overview: >>> >>> Every annotation should be subclass of ClassMetaAnnotation. To attach it >>> to class you create new class side method which will return an instance of >>> the annotation. Method should be marked with pragma #classMetaAnnotation: >>> >>> >>> MyClass class>>specialAnnotation >>> >>> <classMetaAnnotation> >>> >>> ^MySpecialAnnotation new >>> >>> >>> To query annotations from system there are two methods: >>> >>> 1) You can ask concrete annotation class for all declared instances: >>> >>> MySpecialAnnotation declaredInstances >>> >>> 2) You can ask given class for all attached annotations: >>> >>> MyClass metaAnnotations >>> >>> Every annotation includes information about annotated class and the >>> selector of declaring method. >>> All annotations are cached. So it is cheap to query them. There are >>> extra messages to enumerate annotations using block. >>> >>> Now let's discuss it. I think it can be good addition for the Pharo 7. >>> Especially that it is very small code. >>> >>> Also I would like to thank Marcus who helps me realize this concept in >>> Commander and Calypso which I start simplify with this library. >>> >>> Best regards, >>> Denis >>> >> >> >> >> -- >> >> >> >> Guille Polito >> >> Research Engineer >> >> Centre de Recherche en Informatique, Signal et Automatique de Lille >> >> CRIStAL - UMR 9189 >> >> French National Center for Scientific Research - *http://www.cnrs.fr >> <http://www.cnrs.fr>* >> >> >> *Web:* *http://guillep.github.io* <http://guillep.github.io> >> >> *Phone: *+33 06 52 70 66 13 <+33%206%2052%2070%2066%2013> >> > >
