rubyists-

this a bit of *nix question, but, using pipes, how does one either

  a) determine if an IO.gets/read etc would block

or

  b) use non-blocking io with pipes

this certainly does not work...

~/eg/ruby > irb
irb(main):001:0> cat = IO.popen 'cat', File::RDWR | File::NOCTTY | File::NONBLOCK
#<IO:0x401fa334>
irb(main):002:0> cat.puts 'foobar'
nil
irb(main):003:0> cat.gets
"foobar\n"
irb(main):004:0> cat.gets
(blocks...)

does popen then not respect the File::NONBLOCK?  perhaps this is a limitation
of pipes themselves then...

any suggestion of a means to send/receive commands/output using rsh and ruby?

-a
--
  ====================================
  | Ara Howard
  | NOAA Forecast Systems Laboratory
  | Information and Technology Services
  | Data Systems Group
  | R/FST 325 Broadway
  | Boulder, CO 80305-3328
  | Email: ara.t.howard / noaa.gov
  | Phone:  303-497-7238
  | Fax:    303-497-7259
  | ~ > ruby -e 'p(%.\x2d\x29..intern)'
  ====================================