[Pkg] The Trunk: EToys-tpr.325.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Apr 11 23:59:54 UTC 2018


tim Rowledge uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-tpr.325.mcz

==================== Summary ====================

Name: EToys-tpr.325
Author: tpr
Time: 11 April 2018, 4:59:23.49563 pm
UUID: 2b399671-cf5e-4973-a599-caa3ecfb3c4d
Ancestors: EToys-tcj.324

Move FileList2 class projectOnlySelectionMethod: to Project class, where it at least makes a bit of sense and helps toward deprecating fileLsit2

=============== Diff against EToys-tcj.324 ===============

Item was changed:
  ----- Method: EToysLauncher>>projectFiles (in category 'utilities') -----
  projectFiles
  	"Answer a collection of file entry. Only recent version is picked up."
  	"self basicNew projectFiles"
  	| entries |
  	entries := self directories
  				inject: OrderedCollection new
  				into: [:collection :each | 
  					collection addAll: (FileDirectory on: each) entries.
  					collection].
+ 	^ Project latestProjectVersionsFromFileEntries:  entries!
- 	^ FileList2 projectOnlySelectionMethod: entries!

Item was changed:
  ----- Method: FileList2 class>>buildFileListDirFilterType: (in category '*Etoys-Squeakland-blue ui') -----
  buildFileListDirFilterType: aSymbol 
  	| aFileList |
  	aFileList := self new directory: FileDirectory default.
  	aFileList
  		fileSelectionBlock: (aSymbol == #limitedSuperSwikiDirectoryList
+ 				ifTrue: [MessageSend receiver: Project selector: #latestProjectVersionsFromFileEntries: ]
- 				ifTrue: [MessageSend receiver: self selector: #projectOnlySelectionMethod:]
  				ifFalse: [self projectOnlySelectionBlock]).
  	^ aFileList!

Item was added:
+ ----- Method: Project>>latestProjectVersionsFromFileEntries: (in category '*Etoys-Squeakland-file in/out') -----
+ latestProjectVersionsFromFileEntries: incomingEntries
+ 
+ 	| versionsAccepted |
+ 
+ 	"this shows only the latest version of each project"
+ 	versionsAccepted := Dictionary new.
+ 	incomingEntries do: [ :entry | | basicInfoTuple basicVersion basicName |
+ 		entry isDirectory ifFalse: [
+ 			(#('*.pr' '*.pr.gz' '*.project') anySatisfy: [ :each | each match: entry name]) ifTrue: [
+ 				basicInfoTuple := Project parseProjectFileName: entry name.
+ 				basicName := basicInfoTuple first.
+ 				basicVersion := basicInfoTuple second.
+ 				((versionsAccepted includesKey: basicName) and: 
+ 						[(versionsAccepted at: basicName) first > basicVersion]) ifFalse: [
+ 					versionsAccepted at: basicName put: {basicVersion. entry}
+ 				].
+ 			]
+ 		]
+ 	].
+ 	^versionsAccepted asArray collect: [ :each | each second]!

Item was changed:
  ----- Method: ProjectLoading class>>loadFromImagePath: (in category '*etoys') -----
  loadFromImagePath: projectName 
  	"Open the project in image path. This is used with projects in OLPC distribution.
  	- The image's directory is used.
  	- Squeaklets directory is ignored.
  	- If there is a project named projectName, it is opened.
  	"
  	"self openFromImagePath: 'Welcome'"
  	| directory aStream entries fileName |
  	(Project named: projectName)
  		ifNotNil: [:project | ^ project].
  	directory := FileDirectory on: Smalltalk imagePath.
+ 	entries := Project latestProjectVersionsFromFileEntries: directory entries.
- 	entries := FileList2 projectOnlySelectionMethod: directory entries.
  	fileName := (entries
  		detect: [:each | (Project parseProjectFileName: each name) first = projectName]
  		ifNone: [^ nil]) name.
  	'Loading a Project...' displaySequentialProgress: [ProgressNotification signal: '0'.
  			directory := FileDirectory on: Smalltalk imagePath.
  			aStream := directory readOnlyFileNamed: fileName.
  			^ self
  				loadName: fileName
  				stream: aStream
  				fromDirectory: directory
  				withProjectView: nil]!

Item was changed:
  ----- Method: ReleaseBuilderSqueakland class>>prepareEnvironment (in category 'preparing') -----
  prepareEnvironment
  	| directory entries projectNames |
  	super prepareEnvironment.
  	projectNames := #('Gallery' 'Tutorials' 'Home').
  	directory := FileDirectory on: Smalltalk imagePath.
+ 	entries :=Project latestProjectVersionsFromFileEntries:  directory entries.
- 	entries := FileList2 projectOnlySelectionMethod: directory entries.
  	projectNames
  		do: [:projectName | (entries
  					anySatisfy: [:each | (Project parseProjectFileName: each name) first = projectName])
  				ifFalse: [self inform: projectName , ' is not found']].
  	self installExtraPackages.
  	DeferredTask := [ProjectLoading openFromImagePath: 'Home'].!



More information about the Packages mailing list