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
