# Command-set 0.10.4 Released

**URL:** <https://www.ruby-forum.com/t/command-set-0-10-4-released/131641>\
**Category:** Ruby\
**Created:** [March 12, 2008, 2:47am UTC](https://www.ruby-forum.com/t/command-set-0-10-4-released/131641 "2008-03-12T02:47:36Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [March 12, 2008, 2:47am UTC](https://www.ruby-forum.com/t/command-set-0-10-4-released/131641/1 "2008-03-12T02:47:36Z")

</div>

command-set version 0.10.4 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. While you’re developing your  
application, you might find the record and playback utilities useful.  
cmdset-record will start up with your defaults for your command set, and  
spit out an interaction script. Then you can replay the script against  
the live set with cmdset-playback. Great for ad hoc testing, usability  
surveys and general demos.

Changes:

\*\* Marked release 0.10.4 \*\*

Splitting out readline wrapping into orichalcum

Added rake critique task - critique easy-to-forget failing of command  
sets

Better tab-complete handling for cmdset-playback

Added simulated user interaction delays, for more naturalistic playback

Fixed: mode commands not completing

Began command set critic: rspec shared behaviors and a rake task

Created cmdset-playback - you can now record a session with  
cmdset-record  
and play it back with cmdset-playback

Updating cdmset-record

Initial setup of cmdset-record.

Removing deprecated #out from spectask

Project: [http://rubyforge.org/project/commandset/](http://rubyforge.org/project/commandset/)  
Homepage: [http://commandset.rubyforge.org/](http://commandset.rubyforge.org/)
