Evite que la consola de rieles imprima el objeto al final de un bucle

84

Si, por ejemplo, recorro todas las instancias de un modelo dado y obtengo algo de cada una, al final, irb seguirá imprimiendo el objeto completo.

Si el objeto termina tomando cientos de líneas, será un largo camino antes de que vea lo que realmente estaba buscando. ¿Hay alguna forma de desactivar esto en la consola de rieles?

dsp_099
fuente

Respuestas:

109

Si no desea deshabilitar el eco en general, también puede llamar a varias expresiones en una línea de comando. Solo se mostrará la salida de la última expresión.

big_result(input); 0
aef
fuente
3
esto es en realidad lo que quería.
dsp_099
3
A menudo lo hagobig_result(input); nil
nroose
101

Llame conf.echo = falsey no imprimirá el valor de retorno. Esto funciona para cualquier sesión de irb, no solo para la consola Rails.

En caso de que desee hacerlo permanente, agréguelo a su configuración de irb.

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc
lulalala
fuente
¿Qué harías si quisieras que este sea siempre el caso por defecto?
Peter Berg
@ Accipheran Supongo que ponerlo en los inicializadores de Rails funcionaría.
lulalala
Gracias por la respuesta, de hecho descubrí que simplemente lanzando la línea IRB.conf[:ECHO] = false, en mi archivo .irbrc se encargó de ello. Eso, por supuesto, también apaga el eco en todas mis sesiones de irb, pero estoy de acuerdo con eso.
Peter Berg
40

Para detener temporalmente que la consola imprima los valores de retorno, puede emitir una nildeclaración al final de su ciclo o función, pero antes de presionar el retorno.

record.each do |r|
  puts r.properties
end; nil

O también puede ser un número, si desea reducir la escritura. Pero puede ser confuso en escenarios, en los que no puedo pensar.

record.each do |r|
  puts r.properties
end; 0
RajaRaviVarma
fuente
¡Eress el mejor!
sickrandir