Chris Muller uploaded a new version of Installer-Core to project The Trunk:
http://source.squeak.org/trunk/Installer-Core-cmm.393.mcz==================== Summary ====================
Name: Installer-Core-cmm.393
Author: cmm
Time: 7 May 2014, 4:17:07.008 pm
UUID: 595beb55-5641-48b6-8cca-5ace62b68799
Ancestors: Installer-Core-cmm.392
- Add #allPackages accessor so a UI can present a list.
- Respect all repository directives even if encountered more than once.
- More-localized exception handling in #primMerge: (style change only).
=============== Diff against Installer-Core-cmm.392 ===============
Item was added:
+ ----- Method: Installer>>allPackages (in category 'accessing') -----
+ allPackages
+ ^ (self class withAllSuperclasses
+ inject: OrderedCollection new
+ into:
+ [ : coll : each | coll
+ addAll: (each methodsInCategory: 'package-definitions') ;
+ yourself ]) sort!
Item was changed:
----- Method: Installer>>depthFirstOf:do:ifNotIn: (in category 'private') -----
depthFirstOf: structure do: oneArgBlock ifNotIn: aSet
(aSet includes: structure) ifTrue: [ ^ self ].
+ "Respect all repository directives even if encountered more than once."
+ (structure isVariableBinding) ifFalse: [ aSet add: structure ].
- aSet add: structure.
structure isArray
ifTrue:
[ structure do:
[ : each | self
depthFirstOf: each
do: oneArgBlock
ifNotIn: aSet ] ]
ifFalse: [ oneArgBlock value: structure ]!
Item was changed:
----- Method: Installer>>primMerge: (in category 'private') -----
primMerge: packageName
+ | version |
- [ | version |
version := (currentRepository includesVersionNamed: packageName)
ifTrue: [ currentRepository versionNamed: packageName ]
ifFalse: [ currentRepository highestNumberedVersionForPackageNamed: packageName ].
+ [ version shouldMerge
- version shouldMerge
ifTrue: [ version merge ]
+ ifFalse: [ version load ] ]
- ifFalse: [ version load ].
- version workingCopy repositoryGroup addRepository: currentRepository ]
on: MCNoChangesException
do:
[ : req | req resume ]
on: MCMergeResolutionRequest
do:
[ : request | request merger conflicts isEmpty
ifTrue: [ request resume: true ]
+ ifFalse: [ request pass ] ].
+ version workingCopy repositoryGroup addRepository: currentRepository!
- ifFalse: [ request pass ] ]!