[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