Rosetta Example: Respond to an unknown method call
For details see http://rosettacode.org/wiki/Respond_to_an_unknown_method_call
package req nx
Define a class Example modelled after the Python version of Rosetta:
nx::Class create Example { :public method foo {} {return "This is foo."} :public method bar {} {return "This is bar."} :method unknown {method args} { set result "Tried to handle unknown method '$method'." if {[llength $args] > 0} { append result " It had arguments '$args'." } return $result } }
Demonstrating the behavior in a shell:
Create an instance of the class Example:
% set e [Example new] % $e foo This is foo. % $e bar This is bar. % $e grill Tried to handle unknown method 'grill'. % $e ding dong Tried to handle unknown method 'ding'. It had arguments 'dong'.