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?

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

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

¿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

¡Eress el mejor!
sickrandir
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.