Это то, что сделано в Linux много:

ужно проверить наличие ввода STDIN в Ruby-скрипте, например,mysql команда может. Если ничего не направлено на STDIN, то скрипт не должен пытаться прочитать STDIN.

Как это можно сделать кроссплатформенным способом?

Ответы на вопрос(1)

Решение Вопроса

Это то, что сделано в Linux много:

#!/usr/bin/env ruby

str = (STDIN.tty?) ? 'not reading from stdin' : $stdin.read
puts str

>> $ ruby test.rb 
>> not reading from stdin
>> $ echo "reading from stdin" | ruby test.rb 
>> reading from stdin

Ваш ответ на вопрос