An AitCS is sugar for arrays with "operators" in the form of
aliases that provide additional functionality.
One operator is "+" which is equivalent to the lappend command.
Array
% array set app {} % set app(status) ok ok % string totitle $app(status) Ok % set app(numbers) {} % lappend app(numbers) 1 2 3 4 1 2 3 4 % llength $app(numbers) 4
AitCS
% aitcs new app ;# Returns the fq name of the array. ::__app__<random chars>_ % app status ok ok % string totitle [app status] Ok % app numbers {} % app+ numbers 1 2 3 4 1 2 3 4 % llength [app numbers] 4
A DruMa is an object that is "attached" to an AitCS and is used the same way,
but there is now an additional operator ":" that provides access to the object.
It is recommended to subclass the DruMa_Basic class as the DruMa class is very new and in flux.
This is the simplest subclass, with one additional method.
oo::class create MyDruMa { superclass ::druma::DruMa_Basic # Superclass vars variable name ;# aitcs name variable aitcs ;# to access the aitcs itself method info {p} { return [format {%s: %s%s} $name [$aitcs status] $p] } }
Usage is same as AitCS but with bonus ":" operator.
% MyDruMa new app ::oo::Obj15 % app status ok ok % string totitle [app status] Ok % app: info ! app: ok!