Я ищу метод в Ruby, который в основном таков:
io.ready_for_read?
Я просто хочу проверить, доступен ли данный объект IO
(в моем случае, результат вызова popen
), т.е. последующий вызов io.read(1)
не будет блокироваться.
Это два варианта, которые я вижу, ни один из которых мне не нравится:
-
io.read_nonblock
- слишком тонкая абстракция Unixread()
- я не хочу иметь дело с обработкой ошибокerrno
. -
io.select
с таймаутом 0 - обманывает цель этой простой операции.
Есть ли лучшая альтернатива, которую я упустил?