Skip to content

Instantly share code, notes, and snippets.

@mkhl
Created December 8, 2008 18:28
Show Gist options
  • Save mkhl/33552 to your computer and use it in GitHub Desktop.
Save mkhl/33552 to your computer and use it in GitHub Desktop.
Smalltalk
"Extensions for making writing classes with accessors a bit less verbose"
ClassDescription extend [
accessors: aString [
self readers: aString.
self writers: aString.
]
readers: aString [
aString substrings do: [:ivar |
(self allInstVarNames includes: ivar asSymbol)
ifFalse: [ self addInstVarName: ivar ].
self createGetMethod: ivar.
]
]
writers: aString [
aString substrings do: [:ivar |
(self allInstVarNames includes: ivar asSymbol)
ifFalse: [ self addInstVarName: ivar ].
self createSetMethod: ivar.
]
]
]
"This is a small method that illustrates every part of Smalltalk method syntax except primitives"
|y|
true & false not & (nil isNil) ifFalse: [self halt].
y := self size + super size.
#($a #a 'a' 1 1.0)
do: [:each | Transcript
show: (each class name);
show: (each printString);
show: ' '].
^ x < y
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment