Metacello-MC

MetacelloAtomicLoadData
A MetacelloAtomicLoadData is xxxxxxxxx.
Instance Variables
dataMap: <Object>
packageNameMap: <Object>
versionInfoMap: <Object>
dataMap
- xxxxx
packageNameMap
- xxxxx
versionInfoMap
- xxxxx
addVersion:versionInfo:resolvedReference:packageSpec:
check for duplicates and use the one that is being added
currentVersionInfoFor:ifAbsent:
dataMap
do:
isEmpty
packageNameMap
versionInfoMap
MetacelloCachingGoferResolvedReference
A MetacelloCachingGoferResolvedReference is xxxxxxxxx.
Instance Variables
cachedVersion: <Object>
cachedVersion
- xxxxx
version
Answer a Monticello version of the receiver.
workingCopy
Answer a working copy or throw an error if not present.
MetacelloCommonMCSpecLoader
A MetacelloCommonMCSpecLoader is xxxxxxxxx.
Instance Variables
operator: <Object>
operator
- xxxxx
atomicLoader:
currentVersionInfoFor:
doingLoads:
escape mechanism for recording and null loaders to skip doing loaderlike things
latestPackage:fromRepository:
linearLoadPackageSpecs:repositories:
nameComponentsFrom:
operator
operator:
packagesNeedSavingUsing:into:
noop
postLoad:
preLoad:
savePackageUsing:
noop
trueRepositories
MetacelloConfigTemplate
Copy me to start a new project
bootstrapPackage:from:
ensureMetacello
isMetacelloConfig
lastMetacelloVersionLoad
load
metacelloVersion:loads:
project
MetacelloGoferLoad
A MetacelloGoferLoad is xxxxxxxxx.
Instance Variables
addPackage:version:
obsolete, but kept around to ease updating issues (1.0-beta.18)
addVersion:
obsolete, but kept around to ease updating issues (1.0-beta.19)
updateRepositories
Noop for Metacello
MetacelloGoferPackage
A MetacelloGoferPackage is xxxxxxxxx.
Instance Variables
packageFilename: <Object>
version: <Object>
workingCopy: <Object>
packageFilename
- xxxxx
version
- xxxxx
workingCopy
- xxxxx
currentVersionInfo
findWorkingCopy
Answer a working copy, or nil if the package is not loaded.
initializeName:packageFilename:
matches:
does Monticello-style #versionInfoFromVersionNamed: matching
matchesWorkingCopy:
check that the working copy package name matches the package file name and that the first ancestor's package file name
matches the packageName
name:packageFilename:
packageFileName:matchesPackageName:
packageFilename
workingCopy
Answer a working copy or throw an error if not present.
MetacelloMCAtomicSpecLoader
A MetacelloMCAtomicSpecLoader is xxxxxxxxx.
Instance Variables
atomicLoadData: <Object>
atomicLoadData
- xxxxx
atomicLoad:
noop - just collecting information
atomicLoadData
atomicLoadData:
atomicLoader:
currentVersionInfoFor:
MetacelloMCProject
A MetacelloMCProject is xxxxxxxxx.
Instance Variables
createRepository:
defaultLoaderClass
packageSpec
packageSpecClass
packagesNeedSaving:
Answer a collection of associations (package -> repository) representing the packages
reachable from this project that need to be saved
pragmaKeywords
projectPackage
repositoriesSpec
repositoriesSpecClass
repositorySpec
repositorySpecClass
saveProject
updatePackageRepositoriesFor:
updateProject
load the latest version of the configuration package
versionSpecClass
MetacelloMCProjectSpec
A MetacelloMCProjectSpec is xxxxxxxxx.
Instance Variables
projectPackage: <Object>
projectPackage
- xxxxx
comparePartialVersion:using:
compareVersion:using:
compareVersionForLoad:using:
for #development projects, always need latest version of package when contemplating a load
ensureProjectLoaded
Ensure that the MetacelloProject is loaded in image.
projectClass == nil or requested version non-existent warrants a project package load.
file
file:
isCurrent
isCurrentUsing:
isPartiallyCurrentUsing:
isPossibleBaseline
load
loadListForVersion:
loadProject
Ensure that the MetacelloProject is loaded in image.

Answer true if the version should be loaded.
loadVersion
Load the correct version of the project
mergeMap
mergeSpec:
nonOverridable
packageFileSpecFor:
packageRepository
projectClass
projectClassProject
indirection needed when projectClass is _not_ a subclass of MetacelloProject
projectDo:packageDo:groupDo:
projectPackage
projectPackage:
repository
repository:
repository:username:password:
resolveToAllPackagesIn:visited:
resolveToLoadableSpec
updateForSpawnMethod:
just pick up the versionString from the sourceSpec
updatePackageSpec:
Add project copy to updatedSpecs if the current version of the project
is different from the receiver's version
version
Empty version string means use latestVersion or lastVersion
MetacelloMCSpecLoader
A MetacelloMCSpecLoader is xxxxxxxxx.
Instance Variables
repositoryOverrides: <Object>
repositoryOverrides
- xxxxx
atomicLoad:
atomicLoadData
atomicLoadPackageSpec:into:gofer:repositories:
atomicLoadPackageSpecs:repositories:
atomicLoader:
copySpec:from:to:
latestPackage:fromRepository:
linearLoadPackageSpec:gofer:repositories:
load
packagesNeedSavingUsing:into:
noop
repositoriesFrom:
repositoriesFrom:trueRepositories:
repositoryFor:from:
repositoryOverrides
repositoryOverrides:
resolvePackageSpec:gofer:into:repositories:
resolvePackageSpec:gofer:repositories:
resolveSpec:from:
resolveSpec:from:trueRepositories:
savePackageUsing:
noop
shouldDisablePackageCache
trueRepositories
trueRepositories:
MetacelloMCVersion
A MetacelloMCVersion is xxxxxxxxx.
Instance Variables
repositoryOverrides: <Object>
repositoryOverrides
- xxxxx
allPackagesForSpecNamed:
resolves list of packages associated with the named spec.
If the spec is a packages, answer a list including the package and the transitive closure on
its #requires: and #includes: fields.
If the spec is a project, answer a list of the packages associated with the project,
following the transitive closure on packages reachable starting with the #loads: field.
If the spec is a group, answers the list of packages in the #includes: field of the group.
Groups in the #includes: field are expanded following the transitive closure on groups
allPackagesForSpecNamed:ifAbsent:
resolves list of packages associated with the named spec.
If the spec is a packages, answer a list including the package and the transitive closure on
its #requires: and #includes: fields.
If the spec is a project, answer a list of the packages associated with the project,
following the transitive closure on packages reachable starting with the #loads: field.
If the spec is a group, answers the list of packages in the #includes: field of the group.
Groups in the #includes: field are expanded following the transitive closure on groups
allPackagesForSpecs:visited:
currentVersionComparison:covering:
groups
Answers the list of groups associated with this version
load
load:
loadRequiredFromArray:
loader:
packageNamed:
packageNamed:ifAbsent:
packages
Answers the list of packages associated with this version
packagesForSpecNamed:
resolves list of packages associated with the named spec.
If the spec is a packages, answer a list including only the package. #requires: and #includes:
fields in the package are ignored.
If the spec is a project, answers an empty list.
If the spec is a group, answers the list of packages in the #includes: field of the group.
Groups in the #includes: field are expanded following the transitive closure on groups
packagesForSpecNamed:ifAbsent:
resolves list of packages associated with the named spec.
If the spec is a packages, answer a list including only the package. #requires: and #includes:
fields in the package are ignored.
If the spec is a project, answers an empty list.
If the spec is a group, answers the list of packages in the #includes: field of the group.
Groups in the #includes: field are expanded following the transitive closure on groups
projects
Answers the list of projects associated with this version
repositoryOverrides:
MetacelloMCVersionSpec
A MetacelloMCVersionSpec is xxxxxxxxx.
Instance Variables
packages: <Object>
repositories: <Object>
packages
- xxxxx
repositories
- xxxxx
configMethodOn:indent:
configPackagesSpecMethodOn:indent:
configSpawnMethodOn:indent:
currentVersionComparison:covering:
only used for partial version comparison
defaultPackageNames
if there is a package named 'default' (a group) then it defines the default package names,
otherwise answer a list of all of the package names in this version
ifCurrentDo:notCurrentDo:
isCurrent
isPartiallyCurrent:useEquality:
notLoadedMatters == true
answer false if any of the packages are not loaded ... used to determine if the
version is current.
notLoadedMatters == false
answer true if the loaded packages are of an accapetable version ... not loaded packages
don't count ... used to determine the currently loaded version which is approximate.
isPartiallyCurrentAgainst:
isPossibleBaseline
mergeMap
mergeSpec:
nonOverridable
packageNamed:
packageNamed:ifAbsent:
packageNames
packageSpecsInLoadOrder
packages
packages:
packagesNeedSavingVisited:into:
packagesSpec
postCopy
self is a shallow copy, subclasses should copy fields as necessary to complete the full copy
projectDo:packageDo:groupDo:
repositories
repositories:
repositoriesSpec
repository:
repository:username:password:
repositorySpecs
resolveToLoadableSpec:packages:
updatedPackageSpecs
versionClass
MetacelloMCVersionSpecLoader
A MetacelloMCVersionSpecLoader is xxxxxxxxx.
Instance Variables
loader: <Object>
packages: <Object>
repositoryOverrides: <Object>
required: <Object>
versionSpec: <Object>
loader
- xxxxx
packages
- xxxxx
repositoryOverrides
- xxxxx
required
- xxxxx
versionSpec
- xxxxx
load
loader
name
Answer a name for the receiver. This is used generically in the title of certain inspectors, such as the referred-to inspector, and specificially by various subsystems. By default, we let the object just print itself out..
on:
operator
packageSpecsInLoadOrder
project
repositories
repositoryOverrides:
repositorySpecs
required
required:
resolvePackageNames
resolveToLoadableSpecs
versionSpec
versionSpec:
MetacelloNoRepositoryCacheSpecLoader
A MetacelloNoRepositoryCacheSpecLoader is xxxxxxxxx.
Instance Variables
shouldDisablePackageCache
MetacelloNullRecordingMCSpecLoader
A MetacelloNullRecordingMCSpecLoader is xxxxxxxxx.
Instance Variables
currentVersionInfoFor:
MetacelloPackageSpec
A MetacelloPackageSpec is xxxxxxxxx.
Instance Variables
file: <Object>
goferPackage: <Object>
postLoadDoIt: <Object>
preLoadDoIt: <Object>
repositories: <Object>
file
- xxxxx
goferPackage
- xxxxx
postLoadDoIt
- xxxxx
preLoadDoIt
- xxxxx
repositories
- xxxxx
atomicLoadUsing:into:gofer:repositories:
compareVersionForLoad:using:
configMethodBodyOn:hasName:indent:
configMethodCascadeOn:member:last:indent:
configMethodOn:for:selector:cascading:cascade:indent:
configMethodOn:indent:
configShortCutMethodBodyOn:member:indent:
currentPackageLoaded:comparing:notLoaded:using:
Use currentVersionInfoFor: because it involves the loader and returns versionInfo for a planned load
(atomic loaders) or currently loaded package
currentVersionInfo
extractNameFromFile
file
MetacelloPackageSpec compatibility
file:
getFile
raw access to iv
goferLoaderReference
goferPackage
includesForPackageOrdering
info
test compatibility method
isCurrentUsing:
load
loadUsing:gofer:repositories:
mergeMap
mergeSpec:
name
Answer a name for the receiver. This is used generically in the title of certain inspectors, such as the referred-to inspector, and specificially by various subsystems. By default, we let the object just print itself out..
nonOverridable
packageRepository
packageSpecsInLoadOrder
packagesNeedSavingVisited:using:into:
noop by default
postCopy
self is a shallow copy, subclasses should copy fields as necessary to complete the full copy
postLoadDoIt
noop unless non-nil value returned
postLoadDoIt:
preLoadDoIt
noop unless non-nil value returned
preLoadDoIt:
projectDo:packageDo:groupDo:
repositories
repositories:
repository
repository:
repository:username:password:
repositorySpecs
resolveToPackagesIn:visited:
savePackage
updateForSpawnMethod:
updatePackageRepositories:
updatePackageRepositoriesFor:
Don't update the repository unless the package is loaded in the image
updatePackageSpec:using:
Add pkg copy to updatedSpecs if the file in current image is different from the receiver's file
visitingWithPackages:
noop
workingCopy
workingCopyName
workingCopyNameFor:
MetacelloRecordingMCSpecLoader
A MetacelloRecordingMCSpecLoader is xxxxxxxxx.
Instance Variables
afterLoads: <Object>
beforeLoads: <Object>
evalDoits: <Object>
loadData: <Object>
packages: <Object>
repositoryMap: <Object>
afterLoads
- xxxxx
beforeLoads
- xxxxx
evalDoits
- xxxxx
loadData
- xxxxx
packages
- xxxxx
repositoryMap
- xxxxx
afterLoads
beforeLoads
currentVersionInfoFor:
doingLoads:
escape mechanism for recording and null loaders to skip doing loaderlike things
evalDoits
evalDoits:
initialize
Subclasses should redefine this method to perform initializations on instance creation
linearLoadPackageSpec:gofer:repositories:
load
loadData
loadedPackages
loadedRepositories
packages
postLoad:
preLoad:
printOn:
Append to the argument, aStream, a sequence of characters that
identifies the receiver.
repositories
MetacelloRepositoriesSpec
A MetacelloRepositoriesSpec is xxxxxxxxx.
Instance Variables
add:
add:type:
configMethodCascadeOn:indent:
configMethodOn:indent:
merge:
merge:type:
remove:
repository:
repository:username:password:
MetacelloRepositorySpec
A MetacelloRepositorySpec is xxxxxxxxx.
Instance Variables
description: <Object>
password: <Object>
type: <Object>
username: <Object>
description
- xxxxx
password
- xxxxx
type
- xxxxx
username
- xxxxx
addToMetacelloRepositories:
configMethodCascadeOn:lastCascade:
configMethodOn:indent:
createRepository
description
description:
extractTypeFromDescription
mergeIntoMetacelloRepositories:
mergeMap
name
Answer a name for the receiver. This is used generically in the title of certain inspectors, such as the referred-to inspector, and specificially by various subsystems. By default, we let the object just print itself out..
password
password:
removeFromMetacelloRepositories:
type
type:
username
username:
MetacelloVisitedPackages
A MetacelloVisitedPackages is xxxxxxxxx.
Instance Variables
groups: <Object>
packages: <Object>
projects: <Object>
groups
- xxxxx
packages
- xxxxx
projects
- xxxxx
initialize
Subclasses should redefine this method to perform initializations on instance creation
pushProject:
visit:doing: