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 ]!
packages@lists.squeakfoundation.org