Command-set 0.10.2 Released

command-set version 0.10.2 has been released!

CommandSet is a user interface framework. Its focus is a DSL for
defining commands, much like Rake or RSpec. A default readline based
terminal interpreter (complete with context sensitive tab completion,
and the amenities of readline: history editing, etc) is included. It
could very well be adapted to interact with CGI or a GUI - both are
planned. CommandSet has a lot of very nice features. First is the
domain-specific language for defining commands and sets of commands.
Those sets can further be neatly composed into larger interfaces, so
that useful or standard commands can be resued. Optional application
modes, much like Cisco’s IOS, with a little bit more flexibility.
Arguments have their own sub-language, that allows them to provide
interface hints (like tab completion) as well as input validation. On
the output side of things, CommandSet has a very flexible output
capturing mechanism, which generates a tree of data as it’s generated,
even capturing writes to mul
tiple places at once (even from multiple threads) and keeping
everything straight. Methods that normally write to stdout are
interposed and fed into the tree, so you can hack in existing scripts
with minimal adjustment. The final output can be presented to the user
in a number of formats, including contextual coloring and indentation,
or even progress hashes. XML is also provided, although it needs some
work. Templates are on the way.

Changes:

** Marked release 0.10.2 **

Removed deprecated ‘interruptable’ method from command action blocks

Sorted out threading and formatting.

Added fan_out and action_thread to command action blocks - it’s now easy
to
run commands that use threads and have formatting work properly

Project: http://rubyforge.org/project/commandset/
Homepage: http://commandset.rubyforge.org/