I've created a package to contain the refactorings: 'Magritte-Tools' in http://source.lukas-renggli.ch/magritte2unstable contain an initial attempt at description refactoring MAMoveDescriptionsToInstanceRefactoring
 
On 12 January 2012 21:31, Nick Ager <nick.ager@gmail.com> wrote:
Hi,

I've built on Esteban's pragma work and all tests are again green - that is the Magritte container and description extensions now work.

The code is in:
    http://source.lukas-renggli.ch/magritte2unstable

If you want to try it out you'll have to ensure MAPragmaBuilder is used by resetting the builder:

    MADescriptionBuilder default: nil.

Currently the code is backwards compatible.

The next step appears to be to break backwards compatibility and move the descriptions to the instance side.

Lukas mentioned that it might be possible to automate this breaking change with an automated refactoring. I've had a quick look at some of the existing refactorings and will need some support to build a reliable refactoring, which should perform the following:

1) Add <magritte>, <magritte: #extensionMethod>, <magritteContainer> for respectively descriptions, descriptions extensions and description containers.
2) Move the descriptions to the instance-side

Perhaps more contentiously it could also:

3) put descriptions in category "magritte" or "magritte-descriptions" or "meta-descriptions" rather than just "descriptions"
4) rename descriptions from: #descriptionPlace to #placeDescription.

Once descriptions are on the instance-side Magritte will require a little more refactoring... Then Pier will need to be migrated...

Any thoughts on the above or pointers on how to tackle the automated the refactoring?

Thanks

Nick