tx! On Fri, Sep 29, 2017 at 9:58 AM, Denis Kudriashov <dionisi...@gmail.com> wrote:
> > 2017-09-28 21:12 GMT+02:00 Stephane Ducasse <stepharo.s...@gmail.com>: > >> I would not use meta because you would not write annotationAnnotations :) >> and annotations is meta by its name. >> >> classAnnotation is much better than metaAnnotation >> > > Done. > > >> >> Stef >> >> >> On Thu, Sep 28, 2017 at 5:40 PM, Denis Kudriashov <dionisi...@gmail.com> >> wrote: >> >>> So I renamed it to ClassAnnotation with all related names. >>> >>> But I keep meta prefix in #metaAnnotations Class extension to avoid >>> general name: >>> >>> MyClass metaAnnotations >>> >>> You can check updated readme for details https://github.com/dio >>> nisiydk/ClassAnnotation >>> >>> 2017-09-26 17:31 GMT+02:00 Stephane Ducasse <stepharo.s...@gmail.com>: >>> >>>> ;) >>>> >>>> On Tue, Sep 26, 2017 at 1:28 PM, Ben Coman <b...@openinworld.com> 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 < >>>>> guillermopol...@gmail.com> 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 < >>>>>> dionisi...@gmail.com> 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> >>>>>> >>>>> >>>>> >>>> >>> >> >