Alybaba.st 579 B

12345678910111213141516171819
  1. Smalltalk createPackage: 'Alybaba'!
  2. (Smalltalk packageAt: 'Alybaba') imports: {'axon/Axon'. 'lyst/Lyst'}!
  3. !Object methodsFor: '*Alybaba'!
  4. atLyst: aCollection consume: aBlock
  5. | value |
  6. value := self atLyst: aCollection ifAbsent: [ ^self ].
  7. ^ aBlock value: value
  8. !
  9. atLyst: aCollection transform: aBlock
  10. | value |
  11. aCollection last. "raise if empty"
  12. value := self atLyst: aCollection ifAbsent: [ ^self ].
  13. value := aBlock value: value.
  14. value := self atLyst: aCollection ifAbsent: [ ^self ] put: value.
  15. self registeredAxon ifNotNil: [:axon | axon changed: aCollection]
  16. ! !