Here
  http://www.rubygarden.org/ruby?RExpect
is a more or less drop in replacement for expect.rb with a bunch of
advantages....

  * There is a background Thread that slurps on the data source, so even
    if your foreground task is too busy, the data from the devices you are
    driving is not lost. (Doesn't matter if you are driving another
    program, matters lots if you are driving realtime devices.)
  * Reads data in large chunks instead of char by char. Therefore more
    efficient when driving a lot of devices.
  * Can log exactly what each thread saw and did.

It is multithreaded and hence prone to throw exceptions in strange places
and locking up in others. I have tweaked and synchronized until it doesn't
in my test cases and the app I'm using it for.

If you find other problems, pray do tell.

Anyone who can tell me how better to manage PTY's blasted Child_changed
RuntimeError will be blessed.



John Carter                             Phone : (64)(3) 358 6639
Tait Electronics                        Fax   : (64)(3) 359 4632
PO Box 1645 Christchurch                Email : john.carter / tait.co.nz
New Zealand

May contain traces of nuts. This email was packed by mass, not
volume. Contents may have settled during distribution.
This email is not designed or intended for use in on-line control of
aircraft, air traffic, aircraft navigation or aircraft communications; or in
the design, construction, operation or maintenance of any nuclear
facility. Reader represents and warrants that it will not use or
redistribute the email for such purposes.