Esto funciona bastante bien, solo me preguntaba si hay alguna mejora para acortarlo.Script para ejecutar contra stdin si no arg; de lo contrario, ingrese el archivo = ARGV [0]
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
Además, puede usar 'ARGF', ya que es un alias de' $ <'. – kejadlen
Sí, eso funciona estupendamente, me hace preguntarme por qué di la vuelta en círculos la primera vez para captar esto. Creo que es posiblemente debido al comportamiento un tanto extraño (pero bueno) que si ejecutas 'ruby myscript.rb' sin argumentos, que el script simplemente acaba de salir, la mayoría de los programas (certeramente en Unix por ejemplo) se sentarán y esperarán stdin: así que supongo que asumí que tenía que implementar algo ahí, pero de hecho (gracias por la descripción) el intérprete de Ruby hace algo bastante útil y muy inteligente (como siempre) allí! Gracias. – monojohnny
Estoy allí contigo. Todavía me estoy acostumbrando (y descubriendo) a todos estos pequeños trucos de Ruby. –