[Pkg] Monticello Public: PackageInfo-Base-kph.55.mcz
squeak-dev-noreply at lists.squeakfoundation.org
squeak-dev-noreply at lists.squeakfoundation.org
Sat Oct 4 02:15:18 UTC 2008
A new version of PackageInfo-Base was added to project Monticello Public:
http://www.squeaksource.com/mc/PackageInfo-Base-kph.55.mcz
==================== Summary ====================
Name: PackageInfo-Base-kph.55
Author: kph
Time: 4 October 2008, 3:15:14 am
UUID: dc9eabfb-4249-44c6-a298-d11845680828
Ancestors: PackageInfo-Base-kph.54
PackageInfo is now operating 60% faster
=============== Diff against PackageInfo-Base-kph.54 ===============
Item was changed:
----- Method: PackageInfo>>initialize (in category 'testing') -----
initialize
+ methodCategoryPrefix := nil.
+ systemCategories := nil.
+ classesAndMetaClasses := nil.!
- methodCategoryPrefix := nil!
Item was changed:
----- Method: PackageInfo>>externalTraits (in category 'modifying') -----
externalTraits
| behaviors |
^ Array streamContents: [:s |
+ behaviors := self classesAndMetaClasses asSet.
- behaviors := self classesAndMetaClasses.
Smalltalk allTraits do: [:trait |
(behaviors includes: trait) ifFalse: [s nextPut: trait].
(behaviors includes: trait classSide) ifFalse: [s nextPut: trait classSide]]]. !
Item was changed:
SystemOrganization addCategory: #'PackageInfo-Base'!
Item was changed:
----- Method: PackageInfo>>classesDo: (in category 'iterator versions') -----
classesDo: aBlock
+ ^ self classes do: aBlock!
- ^ self loadedClasses do: aBlock!
Item was changed:
----- Method: PackageInfo>>systemCategories (in category 'listing') -----
systemCategories
+
+ systemCategories ifNil: [
+ systemCategories := OrderedCollection new.
+ SystemOrganization categories do: [:cat | (self includesSystemCategory: cat) ifTrue: [ systemCategories add: cat ]].
+ ].
+
+ ^ systemCategories!
- ^ SystemOrganization categories select: [:cat | self includesSystemCategory: cat]!
Item was changed:
Object subclass: #PackageInfo
+ instanceVariableNames: 'packageName methodCategoryPrefix properties systemCategories classesAndMetaClasses'
- instanceVariableNames: 'packageName methodCategoryPrefix properties'
classVariableNames: ''
poolDictionaries: ''
category: 'PackageInfo-Base'!
PackageInfo class
instanceVariableNames: 'default'!
!PackageInfo commentStamp: 'kph 6/2/2008 23:37' prior: 0!
Subclass this class to create new Packages.
!
Item was changed:
----- Method: PackageInfo>>classes (in category 'listing') -----
classes
+ ^ self loadedClasses!
- ^ self loadedClasses asOrderedCollection!
Item was changed:
----- Method: PackageInfo>>loadedClasses (in category 'iterator versions') -----
loadedClasses
"returns a SortedCollection"
^(self systemCategories gather:
[:cat |
(SystemOrganization listAtCategoryNamed: cat)
collect: [:className | Smalltalk at: className]])
+ sortBy: [:a :b | a className <= b className]
- asSortedCollection: [:a :b | a className <= b className]
!
Item was changed:
----- Method: PackageInfo>>coreClassesAndSelectorsDo: (in category 'listing') -----
coreClassesAndSelectorsDo: aBlock
+ self classesAndMetaClasses do: [:class | self coreSelectorsForClass: class do: [ :sel | aBlock value: class value: sel ] ]!
- self classesAndMetaClassesDo: [:class | self coreSelectorsForClass: class do: [ :sel | aBlock value: class value: sel ] ]!
Item was changed:
----- Method: PackageOrganizer>>packageNamed:ifAbsent: (in category 'searching') -----
packageNamed: aString ifAbsent: errorBlock
+ "initialize all cached values before using"
+ ^ (packages at: aString ifAbsent: errorBlock) initialize!
- ^ packages at: aString ifAbsent: errorBlock!
Item was changed:
----- Method: PackageInfo>>classesAndMetaClasses (in category 'listing') -----
classesAndMetaClasses
+
+ ^ classesAndMetaClasses ifNil: [
+
+ classesAndMetaClasses := self classes.
+ classesAndMetaClasses copy do: [:c | classesAndMetaClasses add: c classSide]
+ ].!
- | baseClasses |
- baseClasses := self classes.
- ^baseClasses , (baseClasses collect: [:c | c classSide])!
Item was changed:
----- Method: PackageInfo>>externalClasses (in category 'dependencies') -----
externalClasses
| myClasses |
+ myClasses := self classesAndMetaClasses asSet.
- myClasses := self classesAndMetaClasses.
^ Array streamContents:
[:s |
ProtoObject withAllSubclassesDo:
[:class |
(myClasses includes: class) ifFalse: [s nextPut: class]]]!
Item was removed:
- ----- Method: PackageInfo class>>named: (in category 'packages access') -----
- named: aString
-
- ^ PackageOrganizer default packageNamed: aString ifAbsent: [(self newForName: aString) register]!
Item was removed:
- ----- Method: PackageInfo class>>classResponsibleForName: (in category 'class selection') -----
- classResponsibleForName: aString
-
- PackageInfo allSubclassesDo: [ :class |
- (class isResponsibleForName: aString) ifTrue: [ ^ class ].
- ].
-
- ^ PackageInfo!
Item was removed:
- ----- Method: PackageServices class>>register: (in category 'as yet unclassified') -----
- register: aClass
- ServiceClasses add: aClass!
Item was removed:
- ----- Method: PackageOrganizer class>>forcefullyClearCache (in category 'as yet unclassified') -----
- forcefullyClearCache
- "Clear out the cache dangerously. Forgets any preambles that have been defined"
- default := nil!
Item was removed:
- ----- Method: PackageServices class>>unregister: (in category 'as yet unclassified') -----
- unregister: aClass
- ServiceClasses remove: aClass!
Item was removed:
- ----- Method: PackageInfoTests class>>testCategoryMatches (in category 'as yet unclassified') -----
- testCategoryMatches
-
- ^ #('*-Tests-*' '*-Tests')
- !
Item was removed:
- ----- Method: PackageList class>>open (in category 'as yet unclassified') -----
- open
- ^ self new openInWorld!
Item was removed:
- ----- Method: PackageOrganizer class>>new (in category 'as yet unclassified') -----
- new
- ^ self basicNew initialize!
Item was removed:
- ----- Method: PackageInfoImpl class>>testCategoryMatches (in category 'as yet unclassified') -----
- testCategoryMatches
-
- ^ PackageInfoTests testCategoryMatches!
Item was removed:
- ----- Method: PackageInfo class>>registerPackageName: (in category 'packages access') -----
- registerPackageName: aString
- ^ PackageOrganizer default registerPackageNamed: aString!
Item was removed:
- ----- Method: PackageInfo class>>newForName: (in category 'private') -----
- newForName: aString
- ^ (self classResponsibleForName: aString) basicNew
- packageName: aString;
- initialize;
- yourself!
Item was removed:
- ----- Method: PackageServices class>>initialize (in category 'as yet unclassified') -----
- initialize
- ServiceClasses := Set new!
Item was removed:
- ----- Method: PackageOrganizer class>>cleanUp (in category 'as yet unclassified') -----
- cleanUp
-
- self default packageInfos do: [ :pi |
-
- | resp |
-
- resp := PackageInfo classResponsibleForName: pi packageName.
-
- (((resp = PackageInfo) not and: [ pi class ~= resp ]) or: [ pi class isObsolete ])
- ifTrue: [
- PackageOrganizer default unregisterPackageNamed: pi packageName.
- ].
- ].!
Item was removed:
- ----- Method: PackageOrganizer class>>default (in category 'as yet unclassified') -----
- default
- ^ default ifNil: [default := self new]!
Item was removed:
- ----- Method: PackageInfoKernel class>>isResponsibleForName: (in category 'as yet unclassified') -----
- isResponsibleForName: aString
-
- ^ aString endsWith: '.kernel'!
Item was removed:
- ----- Method: PackageServices class>>allServices (in category 'as yet unclassified') -----
- allServices
- ^ ServiceClasses gather: [:ea | ea services]!
Item was removed:
- ----- Method: PackageInfo class>>registerPackage: (in category 'as yet unclassified') -----
- registerPackage: aString
- "for compatibility with old fileOuts"
- ^ Smalltalk at: #FilePackageManager ifPresent: [:p | p registerPackage: aString]!
Item was removed:
- ----- Method: PackageList class>>initialize (in category 'as yet unclassified') -----
- initialize
- TheWorldMenu registerOpenCommand: {'Package List'. {self. #open}}!
Item was removed:
- ----- Method: PackageInfoTests class>>isResponsibleForName: (in category 'as yet unclassified') -----
- isResponsibleForName: aString
-
- ^ aString endsWith: '.test'!
Item was removed:
- ----- Method: PackageInfo>>classesAndMetaClassesDo: (in category 'listing') -----
- classesAndMetaClassesDo: aBlock
-
- "classes and metaClasses orders the classes (sorted) first,
- here the order is class followed by Metaclass"
-
- self classesDo: [ :ea |
-
- aBlock value: ea.
- aBlock value: ea classSide
- ].
- !
Item was removed:
- ----- Method: PackageInfo class>>allPackages (in category 'packages access') -----
- allPackages
- ^PackageOrganizer default packages!
Item was removed:
- ----- Method: PackageInfoImpl class>>isResponsibleForName: (in category 'as yet unclassified') -----
- isResponsibleForName: aString
-
- ^ aString endsWith: '.impl'!
Item was removed:
- ----- Method: PackageInfo class>>isResponsibleForName: (in category 'class selection') -----
- isResponsibleForName: aString
-
- ^ false!
More information about the Packages
mailing list