2003-08-06 20:09:15 +00:00
|
|
|
" Test for script objects.
|
|
|
|
|
|
|
|
Author: Stefan Urbanek
|
|
|
|
Date: 2003 Aug 6
|
|
|
|
"
|
|
|
|
|
|
|
|
| object method source engine |
|
|
|
|
|
|
|
|
Environment includeFramework:'StepTalk'.
|
|
|
|
|
|
|
|
" Create a script object and set it's environment "
|
|
|
|
object := STScriptObject scriptObject.
|
|
|
|
object setEnvironment:Environment.
|
|
|
|
|
|
|
|
" Get the proper engine "
|
|
|
|
engine := STEngine engineForLanguageWithName:'Smalltalk'.
|
|
|
|
|
2003-08-06 20:29:42 +00:00
|
|
|
" This is the source of new method "
|
|
|
|
source := 'sayHi Transcript showLine: \'Hi.\'. ^self'.
|
|
|
|
|
2003-08-06 20:09:15 +00:00
|
|
|
" Create method "
|
|
|
|
method := engine methodFromSource:source
|
|
|
|
forReceiver:object
|
|
|
|
inEnvironment:Environment.
|
|
|
|
|
|
|
|
" Add the method to the object "
|
|
|
|
object addMethod:method.
|
|
|
|
|
2003-08-06 20:29:42 +00:00
|
|
|
" Add another method with an argument "
|
|
|
|
source := 'sayHiTo:someone Transcript showLine: (\'Hi \', someone). ^self'.
|
|
|
|
method := engine methodFromSource:source
|
|
|
|
forReceiver:object
|
|
|
|
inEnvironment:Environment.
|
|
|
|
object addMethod:method.
|
|
|
|
|
|
|
|
|
2003-08-06 20:09:15 +00:00
|
|
|
" Sent it! "
|
|
|
|
object sayHi.
|
2003-08-06 20:29:42 +00:00
|
|
|
object sayHiTo:'GNUstep'.
|
2003-08-06 20:09:15 +00:00
|
|
|
|
|
|
|
|