Ruby devuelve nulo al imprimir la misma cadena de nuevo

Estoy modificando un gancho pre-recepción de gitlab

el código que devuelve el nombre de la twig es

print ARGF.read print "\n" refs = ARGF.read print refs 

La primera vez cuando imprimo o puse me sale el nombre de la twig pero de nuevo por segunda vez cada vez que uso la misma cadena, no devuelve nada. nil o cadena vacía

Alguna pista de por qué está sucediendo esto. Soy nuevo en ruby, así que no puedo entenderlo.

ARGF es una secuencia diseñada para su uso en scripts que procesan files proporcionados como arguments de command-line o que se pasan a través de STDIN.

El manual indica que ARGF :: read

Lee _length_ bytes de ARGF. Los files nombrados en la command-line se concatenan y se tratan como un solo file por este método, por lo que cuando se llaman sin arguments, el contenido de este pseudo file se devuelve en su totalidad.

Es posible que desee utilizar ARGF :: readline

Devuelve la siguiente línea del file actual en ARGF.

o quizás ARGF :: rewind

Coloca el file actual al comienzo de la input, restableciendo ARGF.lineno a cero.

Una llamada ARGF.read no es idempotente, es decir que no puede invocarla muchas veces y esperar el mismo resultado ya que "consumirá" todos los arguments de la línea de command pasados ​​a su gancho.

Si desea reutilizar los arguments de la command-line, primero debe almacenarlos en una variable local y luego hacer lo que quiera con ellos.

 refs = ARGF.read print refs print "\n" # do something here with your arguments print "\n"