Search code examples
smalltalkpharosqueakmonticello

Monticello extension method categorization rules


I am curious what the rules are for categorizing Monticello extension methods. I notice (in the Pharo image) some are in all lowercase like *package-name while others are in normal case like *Package-Name. Also I am curious about sub categorization to add a "real" category after the package name, like *Package-Name-accessing, for example when extending with accessors some class, is this supported or dangerous and possible to break?

Update: if I did something wrong, I would like to know why instead of downvotes without comment.


Solution

  • Package name comparison is case-insensitive. Traditionally, Smalltalk uses lowercase categories. You're free to use either.

    There is no harm in adding '-foo-bar baz' suffixes to the category name.

    Note that this is not built into Monticello. It uses PackageInfo to determine which definitions are part of a given package. Browsing PackageInfo is enlightening.

    Also, name-based matching is only the default. A PackageInfo subclass can override this, but this is done very rarely.