Demonstrate how to dynamically add variables to an object (a class instance) at runtime.

This is useful when the methods/variables of an instance are based on a data file that isn't available until runtime. Hal Fulton gives an example of creating an OO CSV parser at An Exercise in Metaprogramming with Ruby. This is referred to as "monkeypatching" by Pythonistas and some others.

#APPTYPE CONSOLE
 
CLASS Growable
 
	PRIVATE:
 
	DIM instructions AS STRING = "Sleep(1)"
	:ExecCode
	DIM dummy AS INTEGER = EXECLINE(instructions, 1)
 
	PUBLIC:
 
	METHOD Absorb(code AS STRING)
		instructions = code
		GOTO ExecCode
	END METHOD
 
	METHOD Yield() AS VARIANT
		RETURN result
	END METHOD
 
END CLASS
 
DIM Sponge AS NEW Growable()
 
Sponge.Absorb("DIM b AS VARIANT = 1234567890: DIM result AS VARIANT = b")
PRINT Sponge.Yield()
Sponge.Absorb("b = ""Hello world!"": result = b")
PRINT Sponge.Yield()
 
PAUSE