[Pkg] Sake : Sake-Core-kph.91.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Wed Dec 17 22:42:29 UTC 2008


A new version of Sake-Core was added to project Sake :
http://www.squeaksource.com/Sake/Sake-Core-kph.91.mcz

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

Name: Sake-Core-kph.91
Author: kph
Time: 17 December 2008, 10:42:27 pm
UUID: eae06100-3e1e-4e0d-9d9c-5fe67cc36e34
Ancestors: Sake-Core-kph.90

SakeMeta is now an OrderedDictionary (fairly minimal implementation)

=============== Diff against Sake-Core-kph.90 ===============

Item was added:
+ ----- Method: SakeMeta>>order (in category 'as yet unclassified') -----
+ order
+ 
+ 	^ order!

Item was added:
+ ----- Method: SakeMeta>>initialize: (in category 'as yet unclassified') -----
+ initialize: n
+ 
+ 	super initialize: n.
+ 	order := OrderedCollection new.!

Item was added:
+ ----- Method: SakeMeta>>removeKey: (in category 'as yet unclassified') -----
+ removeKey: key
+ 	
+ 	super removeKey: key.
+ 	order remove: key.!

Item was changed:
  Dictionary subclass: #SakeMeta
+ 	instanceVariableNames: 'order'
- 	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'Sake-Core'!
  
+ !SakeMeta commentStamp: 'kph 12/17/2008 22:40' prior: 0!
- !SakeMeta commentStamp: 'kph 10/26/2008 17:50' prior: 0!
  | s |
  s := ReadWriteStream on: String new.
  (self new a: 1; b: 2; yourself) storeOn: s.
+ s reset contents
+ 
+ !
- s reset fileIn!

Item was changed:
  ----- Method: SakeMeta>>storeOn: (in category 'as yet unclassified') -----
  storeOn: aStream
  
+ 	"writes metadata in a user readable format"
- 	"writes metadata in a user readable format - oh for an ordered dictionary"
  
  	| noneYet |
  	aStream nextPutAll: '('.
  	aStream nextPutAll: self class name.
  	aStream nextPutAll: ' new'; cr.
  	noneYet := true.
+ 	self withIndexDo: [ :value :key | 
- 	self associationsDo: 
- 			[:each | 
  			noneYet
  				ifTrue: [noneYet := false]
  				ifFalse: [aStream nextPut: $;; cr].
  			aStream nextPutAll: ' at: '.
+ 			aStream store: key.
- 			aStream store: each key.
  			aStream nextPutAll: ' put: '.
+ 			aStream store: value.
- 			aStream store: each value.
  			].
  	noneYet ifFalse: [aStream nextPut: $;; cr; nextPutAll: 'yourself'].
  	aStream nextPut: $)!

Item was added:
+ ----- Method: SakeMeta>>initialize (in category 'as yet unclassified') -----
+ initialize
+ 
+ 	super initialize.
+ 	order := OrderedCollection new.!

Item was added:
+ ----- Method: SakeMeta>>at:put: (in category 'as yet unclassified') -----
+ at: key put: value
+ 	
+ 	self at: key ifAbsent: [ order add: key ].
+ 	super at: key put: value.
+ 	!

Item was added:
+ ----- Method: SakeMeta>>withIndexDo: (in category 'as yet unclassified') -----
+ withIndexDo: aBlock
+ 
+ 	"use the order for readable printing"
+ 	
+ 	order do: [ :key |  aBlock value: (self at: key) value: key ]!



More information about the Packages mailing list