[Pkg] Packages: Packages-Core-kph.51.mcz
squeaksource-noreply at iam.unibe.ch
squeaksource-noreply at iam.unibe.ch
Sun Aug 17 23:27:34 UTC 2008
A new version of Packages-Core was added to project Packages:
http://www.squeaksource.com/Packages/Packages-Core-kph.51.mcz
==================== Summary ====================
Name: Packages-Core-kph.51
Author: kph
Time: 18 August 2008, 12:27:32 am
UUID: d6e5459b-c662-49f5-bcfb-0b82d846fc91
Ancestors: Packages-Core-kph.50
added validation of categories...
- definition methods are categorised according to the metadata.
added worksIn: field, so that one definition can be broadcast to multiple classes.
added task which copies a definition to the classes listed in worksIn.
=============== Diff against Packages-Core-kph.50 ===============
Item was added:
+ ----- Method: Packages class>>taskPropagateWorksIn (in category 'tasks - universes') -----
+ taskPropagateWorksIn
+
+ ^ SakeTask define: [ :task |
+
+ task action: [
+ self selectors do: [ :sel |
+ (self named: sel) worksIn ifNotNilDo: [ :list |
+ list first = self name ifTrue: [
+ list allButFirstDo: [ :ea |
+ (Smalltalk classNamed: ea) addSelector: sel withMethod: (self compiledMethodAt: sel) method notifying: nil.
+ ]
+ ]
+ ]
+ ].
+ ]
+ ]
+
+
+ !
Item was changed:
----- Method: Packages>>worksIn (in category 'as yet unclassified') -----
+ worksIn
- worksIn
-
^ self info worksIn!
Item was added:
+ ----- Method: Packages class>>taskValidate (in category 'tasks - universes') -----
+ taskValidate
+
+ "
+ self taskValidateAll run.
+ "
+
+ ^ SakeTask define: [ :task |
+
+ task action: { self taskPropagateWorksIn.
+ self taskValidateCategories }
+
+ ]
+ !
Item was added:
+ ----- Method: Packages class>>taskValidateCategories (in category 'tasks - universes') -----
+ taskValidateCategories
+
+ ^ SakeTask define: [ :task |
+
+ task action: [
+ self selectors do: [ :sel |
+ self organization classify: sel under: (((self named: sel) info category) ifNil: [ 'as yet unclassified' ])
+ ].
+ self organization removeEmptyCategories.
+ ]
+ ]
+
+
+ !
Item was added:
+ ----- Method: Packages class>>taskValidateAll (in category 'tasks - universes') -----
+ taskValidateAll
+
+ "
+ self taskValidateAll run.
+ "
+
+ ^ SakeTask define: [ :task |
+
+ task action:
+
+ (PackagesAllVersions allSubclasses select: [ :each | each initialize isUniverse ] thenCollect: [ :sc | sc taskValidate ]).
+
+ ]
+ !
Item was changed:
----- Method: Packages class>>taskGenerateUniversePackageTasks (in category 'tasks - universes') -----
taskGenerateUniversePackageTasks
| source selector |
^ SakeTask define: [ :task |
task dependsOn: {
[ self isUniverse ].
self taskUpdateUniverse.
self taskRemoveOldPackages.
}.
task action: [
(self theUUniverse packageNames collect: [ :each | self theUUniverse newestPackageNamed: each ]) do: [ :each |
source := (WriteStream on: String new).
source << (selector := self asSelector: each name).
source cr; cr.
source << ' self name: ' << each name printString << '.' ; cr.
+ source << ' self version: ''' << each version << '''.' ; cr.
+ source << ' info supports: #( ' << self class name << ' )'; cr ; cr.
- source << ' self version: ''' << each version << '''.' ; cr; cr.
source << ' info category: ''' << each category printString << '''.' ; cr.
source << ' info description: ' ; cr.
source << each description withSqueakLineEndings printString << '.' ; cr.
source << ' info maintainer: ''' << each maintainer << '''.' ; cr.
source << ' info homepage: ''' << (each homepage ifNil: ['']) asString << '''.' ; cr.
source << ' info squeakMapID: ''' << (each squeakMapID ifNil: ['']) asString << '''.' ; cr.
source << ' info url: ''' << each url printString << '''.' ; cr.
+ source << ' self provides: ' << each provides asArray printString << '.' ; cr ; cr.
- source << ' self provides: ' << each provides asArray printString << '.' ; cr ; cr.
source << ' self dependsOn: ' << each depends asSortedCollection asArray printString << '.' ; cr ; cr.
source << ' self load: [' ; cr.
each url ifNotNil: [
source << ' Installer installUrl:''' << each url printString << '''.' ; cr.
].
source << ' ].' ; cr ; cr.
"source << ' self unloadDependsOn: { self taskUnloadDependants }.' ; cr."
source << ' self unload: [' ; cr.
each url ifNotNil: [
source << ' Installer mc unload: ' << each name printString << '.' ; cr.
].
source << ' ].'.
(self sourceCodeAt: selector ifAbsent: nil) ~= source contents ifTrue: [
self compile: source contents classified: each category printString notifying: nil
]
].
theUUniverse := nil.
].
]!
More information about the Packages
mailing list