Это работает вполне приятно - просто задался вопросом, существуют ли какие-либо улучшения для сокращения его?
if (ARGV[0].nil?) then
input=$<
else
input=File.new(ARGV[0],"r");
end
...
# Do something with the input here, for example:
input.each_line do |line|
puts line
end