-
Notifications
You must be signed in to change notification settings - Fork 0
Project
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.