Accessible Objects
AccessibleObject methods for: error interception
doesNotUnderstand: aMessage
"Refer messages we don't understand to our item dictionary..."
| selector name args |
selector := aMessage selector.
name := (selector copyWithout: $:) asSymbol.
args := aMessage arguments.
(self hasVariableNamed: name)
ifTrue: [args size = 0
ifTrue: [^self variableAt: name]
ifFalse: [^self variableAt: name put: (args at: 1)]].
(items respondsTo: selector)
ifTrue: [^items perform: selector withArguments: args].
args size = 1
ifTrue: [^self valueAt: name put: (args at: 1)]
ifFalse: [^self valueAt: name ifAbsent:
[^super doesNotUnderstand: aMessage]]