::xox
Class ParseArgs

Heritage:
::xotcl::Object
  |
  +--::xotcl::Class
Associated Test:
::xox::test::TestParseArgs

Class ParseArgs
superclass ::xotcl::Class,
ParseArgs is a meta-class that allows its instances
 to quickly add flags and parse command line arguments.
 ParseArgs wraps XOTcl's non-positional arguments built-in ability.
Variables
NameDefault ValueClassComment
flags  ""  ::xox::ParseArgs
 Flags created with the addFlag method.
version    ::xotcl::Class
 
 
Methods
NameComment
addFlag {flag}   Adds a pair of methods that can be used to set flags on the command line
parse {args}   Uses XOTcl's configure to parse dashed args
   
Methods from ::xotcl::Class
allinstances, classParameter, classParameterArray, garbageCollect, getPackage, id, instfilterappend, instmixinappend, insttclcmd,
   
Methods from ::xotcl::Object
#, ., ?, ?code, ?methods, ?object, abstract, copy, coverageFilter, defaultmethod, extractConfigureArg, filterappend, garbageCollect, get#, getClean#, hasclass, init, methodTag, mixinappend, move, profileFilter, self, setParameterDefaults, shell, tclcmd, traceFilter,
 
Instproc Detail

addFlag

Description:
 Adds a pair of methods that can be used to set flags
 on the command line.
Arguments:
Code:
  ::xox::ParseArgs instproc addFlag {flag}  {
   

        my lappend flags $flag

        my instproc $flag { } "
            ::xotcl::my set $flag 1
        "

        my instproc is$flag { } "
            ::xotcl::my instvar $flag 
            return \$$flag
        "
    
}

parse

Description:
 Uses XOTcl's configure to parse dashed args.
Arguments:
Code:
  ::xox::ParseArgs instproc parse {args}  {
   

        my instvar flags

        set parsedArgs [ my new ]

        foreach flag $flags {

            $parsedArgs set $flag 0
        }

        eval "$parsedArgs configure $args"

        return $parsedArgs
    
}