如何在Ruby中检查ARGF是否为空

我想像这样对待ARGF.
# file.rb
if ARGF.???
  puts ARGF.read
else
  puts "no redirect."
end

$echo "Hello world" | ruby file.rb
Hello world

$ruby file.rb
no redirect.

我需要做的不用等待用户输入.我试过eof?还是关闭?没有帮助.有任何想法吗?

注意我误解了ARGF.请看下面的评论.

解决方法

基本上你会检查#filename.一种方法是:
if ARGF.filename != "-"
  puts ARGF.read
else
  puts "no redirect."
end

这是更完整的形式:

#!/usr/bin/env ruby
if ARGF.filename != "-" or (not STDIN.tty? and not STDIN.closed?)
  puts ARGF.read
else
  puts "No redirect."
end

一个

#!/usr/bin/env ruby
if not STDIN.tty? and not STDIN.closed?
  puts STDIN.read
else
  puts "No redirect."
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...