[Pkg] The Trunk: Monticello-cmm.468.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jun 8 21:23:00 UTC 2011
Chris Muller uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-cmm.468.mcz
==================== Summary ====================
Name: Monticello-cmm.468
Author: cmm
Time: 6 June 2011, 6:39:41.572 pm
UUID: 08000000-1508-760d-1508-760d14000000
Ancestors: Monticello-cmm.467
When renaming a package, register the new package name _before_ performing the rename operations because, otherwise, the renames could cause a generically-named package to be registered too.
=============== Diff against Monticello-ul.466 ===============
Item was added:
+ ----- Method: MCClassDefinition>>rename:toBe: (in category 'renaming') -----
+ rename: oldPackageName toBe: newPackageName
+ self actualClass category:
+ (self
+ newCategoryNameFor: self actualClass category
+ givenRenameFrom: oldPackageName
+ to: newPackageName)!
Item was added:
+ ----- Method: MCDefinition>>newCategoryNameFor:givenRenameFrom:to: (in category 'renaming') -----
+ newCategoryNameFor: categoryName givenRenameFrom: oldPackageName to: newPackageName
+ ^ oldPackageName size < categoryName size
+ ifTrue:
+ [ newPackageName ,
+ (categoryName
+ copyFrom: oldPackageName size + 1
+ to: categoryName size) ]
+ ifFalse: [ newPackageName ]!
Item was added:
+ ----- Method: MCDefinition>>rename:toBe: (in category 'renaming') -----
+ rename: oldPackageName toBe: newPackageName
+ "Overridden as necessary in subclasses."!
Item was added:
+ ----- Method: MCMethodDefinition>>rename:toBe: (in category 'renaming') -----
+ rename: oldPackageName toBe: newPackageName
+ "If I'm an extension or override method, rename the category to be prefixed with newPackageName."
+ (self isExtensionMethod or: [ self isOverrideMethod ]) ifTrue:
+ [ self actualClass organization
+ renameCategory: self category
+ toBe:
+ '*' ,
+ (self
+ newCategoryNameFor: self category allButFirst
+ givenRenameFrom: oldPackageName
+ to: newPackageName) asLowercase ]!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>= (in category 'testing') -----
- ----- Method: MCOrganizationDefinition>>= (in category 'as yet unclassified') -----
= aDefinition
^ (super = aDefinition)
and: [categories = aDefinition categories]!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>accept: (in category 'actions') -----
- ----- Method: MCOrganizationDefinition>>accept: (in category 'as yet unclassified') -----
accept: aVisitor
^ aVisitor visitOrganizationDefinition: self!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>categories (in category 'accessing') -----
- ----- Method: MCOrganizationDefinition>>categories (in category 'as yet unclassified') -----
categories
^ categories!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>categories: (in category 'accessing') -----
- ----- Method: MCOrganizationDefinition>>categories: (in category 'as yet unclassified') -----
categories: anArray
categories := anArray!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>commonPrefix (in category 'accessing') -----
- ----- Method: MCOrganizationDefinition>>commonPrefix (in category 'as yet unclassified') -----
commonPrefix
| stream |
categories isEmpty ifTrue: [^ ''].
stream := String new writeStream.
categories first withIndexDo:
[:c :i|
categories do:
[:ea |
(ea at: i ifAbsent: []) = c ifFalse: [^ stream contents]].
stream nextPut: c].
^ stream contents!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>description (in category 'accessing') -----
- ----- Method: MCOrganizationDefinition>>description (in category 'as yet unclassified') -----
description
^ Array with: #organization with: self commonPrefix!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>isOrganizationDefinition (in category 'testing') -----
- ----- Method: MCOrganizationDefinition>>isOrganizationDefinition (in category 'as yet unclassified') -----
isOrganizationDefinition
^ true!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>postloadOver: (in category 'actions') -----
- ----- Method: MCOrganizationDefinition>>postloadOver: (in category 'as yet unclassified') -----
postloadOver: oldDefinition
SystemOrganization categories:
(self
reorderCategories: SystemOrganization categories
original: (oldDefinition ifNil: [#()] ifNotNil: [oldDefinition categories]))!
Item was added:
+ ----- Method: MCOrganizationDefinition>>rename:toBe: (in category 'actions') -----
+ rename: oldPackageName toBe: newPackageName
+ categories do:
+ [ : each | SystemOrganizer default
+ renameCategory: each
+ toBe:
+ (self
+ newCategoryNameFor: each
+ givenRenameFrom: oldPackageName
+ to: newPackageName) ]!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>reorderCategories:original: (in category 'actions') -----
- ----- Method: MCOrganizationDefinition>>reorderCategories:original: (in category 'as yet unclassified') -----
reorderCategories: allCategories original: oldCategories
| first |
first := allCategories detect: [:ea | categories includes: ea] ifNone: [^ allCategories].
^ ((allCategories copyUpTo: first) copyWithoutAll: oldCategories, categories),
categories,
((allCategories copyAfter: first) copyWithoutAll: oldCategories, categories)
!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>sortKey (in category 'accessing') -----
- ----- Method: MCOrganizationDefinition>>sortKey (in category 'as yet unclassified') -----
sortKey
^ '<organization>'!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>source (in category 'accessing') -----
- ----- Method: MCOrganizationDefinition>>source (in category 'as yet unclassified') -----
source
^ String streamContents:
[:s |
categories do: [:ea | s nextPutAll: ea] separatedBy: [s cr]]!
Item was changed:
+ ----- Method: MCOrganizationDefinition>>summary (in category 'accessing') -----
- ----- Method: MCOrganizationDefinition>>summary (in category 'as yet unclassified') -----
summary
^ categories asArray printString!
Item was added:
+ ----- Method: MCWorkingCopy>>renameToBe: (in category 'operations') -----
+ renameToBe: newPackageName
+ | newWorkingCopy |
+ self modified ifTrue: [ self error: 'Should only rename an unmodified package.' ].
+ (MCWorkingCopy allManagers anySatisfy:
+ [ : each | each packageName = newPackageName ]) ifTrue: [ self error: newPackageName , ' is already taken.' ].
+ PackageInfo registerPackageName: newPackageName.
+ newWorkingCopy := MCWorkingCopy forPackage: (MCPackage new name: newPackageName).
+ self package snapshot definitions do:
+ [ : each | each
+ rename: self package name
+ toBe: newPackageName ].
+ self ancestors do:
+ [ : each | newWorkingCopy ancestry addAncestor: each ].
+ ^ newWorkingCopy!
Item was added:
+ ----- Method: MCWorkingCopyBrowser>>renamePackage (in category 'actions') -----
+ renamePackage
+ | newName |
+ workingCopy ifNil:
+ [ UIManager inform: 'Please select a package to be renamed.'.
+ ^ self ].
+ workingCopy modified ifTrue:
+ [ UIManager inform: 'Only unmodified packages should be renamed.'.
+ ^ self ].
+ newName := FillInTheBlankMorph
+ request: 'New name of package:'
+ initialAnswer: workingCopy packageName.
+ newName isEmptyOrNil ifFalse:
+ [ | newWorkingCopy |
+ newWorkingCopy := workingCopy renameToBe: newName.
+ workingCopy package snapshot definitions
+ ifEmpty:
+ [ "It worked."
+ workingCopy unregister.
+ workingCopy := newWorkingCopy.
+ self repositorySelection: 0.
+ self
+ workingCopyListChanged ;
+ changed: #workingCopySelection ;
+ changed: #repositoryList.
+ self changedButtons ]
+ ifNotEmpty:
+ [ "It didn't work, browse the remaining definitions."
+ self browseWorkingCopy ] ]!
Item was changed:
----- Method: MCWorkingCopyBrowser>>workingCopyListMenu: (in category 'morphic ui') -----
workingCopyListMenu: aMenu
workingCopy ifNil: [^ aMenu].
self fillMenu: aMenu fromSpecs:
#(('add required package' #addRequiredPackage)
('clear required packages' #clearRequiredPackages)
('browse package' #browseWorkingCopy)
('view changes' #viewChanges)
('view history' #viewHistory)
('recompile package' #recompilePackage)
('revert package...' #revertPackage)
('unload package' #unloadPackage)
+ ('delete working copy' #deleteWorkingCopy)
+ ('rename package...' #renamePackage)).
- ('delete working copy' #deleteWorkingCopy)).
(Smalltalk includesKey: #SARMCPackageDumper) ifTrue: [
aMenu add: 'make SAR' target: self selector: #fileOutAsSAR
].
self insertExternalMenuEntries: aMenu.
^aMenu!
More information about the Packages
mailing list