Skip to content
dalehenrich edited this page Mar 11, 2012 · 16 revisions

The Metacello Scripting API is all about manipulating projects. The project in the Metacello Scripting API is very similar to the project spec that you use when defining external references in a baseline version:

    spec
        project: 'Gofer'
        with: [ 
            spec
                className: 'ConfigurationOfGofer';
                versionString: '1.0';
                loads: #('Core');
                repository: 'http://seaside.gemstone.com/ss/metacello' ]

with minor differences:

    Metacello new
        project: 'Gofer';
        version: '1.0';
        repository: 'http://seaside.gemstone.com/ss/metacello';
        load: #('Core').

The Metacello Scripting API constructs the name of the configuration class by tacking a 'ConfigurationOf' on the front of the projectName.

##Tracking Loaded Projects The Metacello Scripting API keeps track of the projects that are loaded into your image. The map is keyed by project name and the value is an instance of MetacelloProject using the name, version, and repository fields.

##Registered Projects One may register a project with the Metacello Scripting API, specifying a name, version, and repository.

##Pinning Projects Whenever a project is to be loaded either explicitly via a direct project load or via a project reference from within a configuration being loaded/fetched/recorded, the project is looked up in the tracked and registered projects lists. If the project is found, then the version and repository information from the tracked and registered project is used to inform the loader.

Clone this wiki locally