[squeak-dev] The Inbox: Monticello-cmm.568.mcz

Bert Freudenberg bert at freudenbergs.de
Mon Sep 9 12:26:35 UTC 2013


A class can be in multiple packages at the same time. These new #packageInfo methods only answer a random one.

Wouldn't it be better if they returned a (possibly empty) collection of package infos, and the senders would deal with them?

- Bert -

On 2013-09-07, at 16:29, commits at source.squeak.org wrote:

> A new version of Monticello was added to project The Inbox:
> http://source.squeak.org/inbox/Monticello-cmm.568.mcz
> 
> ==================== Summary ====================
> 
> Name: Monticello-cmm.568
> Author: cmm
> Time: 7 September 2013, 11:23:41.529 am
> UUID: 575ad6a3-2df6-4ae5-99a8-24c15f032558
> Ancestors: Monticello-cmm.567
> 
> - Adopt two more methods needed for browsing MC history.
> 
> =============== Diff against Monticello-cmm.567 ===============
> 
> Item was added:
> + ----- Method: Class>>packageInfo (in category '*monticello') -----
> + packageInfo
> + 	^ PackageInfo allPackages
> + 		detect: [ : each | each includesClass: self ]
> + 		ifNone: [ nil ]!
> 
> Item was changed:
>  ----- Method: MCHttpRepository>>httpGet:for: (in category 'private') -----
>  httpGet: actionString for: aMCDefinition
> - self halt.
>  	^ HTTPSocket
>  		httpGet: self locationWithTrailingSlash
>  		args: 
>  			{ 'action'->{actionString}.
>  			'mc-definition'-> {self serializeForRequest: aMCDefinition}}
>  		user: self user
>  		passwd: self password!
> 
> Item was added:
> + ----- Method: MethodReference>>packageInfo (in category '*monticello') -----
> + packageInfo
> + 	"Answer the PackageInfo containing this method."
> + 	| methodCategory classCategory |
> + 	methodCategory := self category.
> + 	classCategory := methodCategory first = $* ifFalse: [ self actualClass theNonMetaClass category ].
> + 	^ PackageInfo allPackages 
> + 		detect: 
> + 			[ : each | 
> + 			"detect: [ : each | each methods includes: self ]" "<-- too slow"
> + 			(each isYourClassExtension: methodCategory) or: 
> + 				[ classCategory notNil and: [ each systemCategories includes: classCategory ] ] ]
> + 		ifFound: [ : foundPackage | PackageInfo named: foundPackage packageName ]
> + 		ifNone: [ nil ]!
> 
> 



More information about the Squeak-dev mailing list