[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