On Mon, Aug 16, 2010 at 9:35 PM, Stéphane Ducasse <[email protected]
> wrote:

> did you check is there is a safe guard when the category start with *?
>

This is not up to AutomaticMethodCategorizer. I mean, by code, the only
defined rules are the ones that are in #defaultCategorizationRules
If you want you can add more rules. For a rule you can say something like
this:

add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn:
#testing);

if you do something like this for example:

add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn:
#*Something);

There will be no error in AutomaticMethodCategorizer and Something will be
recognized as it were a package.

More or less could happen the same with a selector that doesn't apply to any
rule. For example, suppose #aFunnySelector doesn't match any rule, but there
are 10 implementors in the image and the 80% of them has category
*Something.  Then. it will apply *Something also to that selector.

That's what I understood. However, I don't think it is a big deal and we can
live with that.


> ?Stef
>
>
> > > Hi folks...while browsing AutomaticMethodCategorizer  I found the place
> where the rules are defined. It is cool becuase we can add the rules we
> want. I am all ears.
> >
> > yes I would really like to have consistent categories.
> > Now we should pay attention that the automaticmethodcategory does not do
> anythin when the category is * something.
> >
> > Stef
> > >
> > > For now, it is doing this:
> > >
> > >
> > > defaultCategorizationRules
> > >
> > >     "The order is relevant, the categorizer uses the first rule
> matching - DF"
> > >
> > >     ^OrderedCollection new
> > >         add: MethodCategorizationRule forAccessors;
> > >         add: (MethodCategorizationRule whenSelectorMatches:
> 'initialize*' categorizeIn: #initialization);
> >
>                                              #initialize
> >
> > >         add: (MethodCategorizationRule whenSelectorMatches: 'is*'
> categorizeIn: #testing);
> > >         add: (MethodCategorizationRule whenSelectorMatches: 'has*'
> categorizeIn: #testing);
> > >         add: (MethodCategorizationRule whenSelectorMatches: '='
> categorizeIn: #comparing);
> > >         add: (MethodCategorizationRule whenSelectorMatches: 'hash'
> categorizeIn: #comparing);
> > >         add: (MethodCategorizationRule whenSelectorMatches: 'default*'
> categorizeIn: #defaults);
> > >         add: (MethodCategorizationRule whenSelectorMatches: 'printOn:'
> categorizeIn: #printing);
> > >         add: (MethodCategorizationRule whenSelectorMatches: 'accept:'
> categorizeIn: #'visitor accepting');
> > >         add: (MethodCategorizationRule whenSelectorMatches: 'visit*:'
> categorizeIn: #visiting);
> > >         add: (MethodCategorizationRule whenSelectorMatches: 'value'
> categorizeIn: #evaluating);
> > >         add: (MethodCategorizationRule
> > >                     whenSelectorMatches: 'test*'
> > >                     andClassInheritsFrom: TestCase
> > >                     categorizeIn: #tests);
> > >         add: MethodCategorizationRule
> usingMostUsedCategoryInSuperClasses;
> > >         add: MethodCategorizationRule usingMostUsedCategoryInImage;
> > >         yourself
> > >
> >
> >
> >
> > One important thing I forgot to say is that the order is important here.
> Notice that the pattern rules are first and then the rules for the most used
> categories...this means that for example printOn: will be always in
> 'printing'. However, in the system most printOn: could be in 'print'
> category...
> >
> > So it is important what you want more...if specific patterns or maintain
> consistency with what you have in the system...
> >
> > cheers
> >
> > mariano
> >
> >
> > >
> > >
> > > We should improve this guy.... ideas to add/change?
> > >
> > > Cheers
> > >
> > > Mariano
> > > _______________________________________________
> > > Pharo-project mailing list
> > > [email protected]
> > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [email protected]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [email protected]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to