tutorial software rails official framework ejemplos caracteristicas ruby-on-rails ruby irb

ruby-on-rails - software - ruby on rails website



Cómo suprimir las salidas de Rails de la consola/irb (6)

Salida de Supress, en general

Además, según sus necesidades, eche un vistazo al uso de silence_stream o silence_stream para suprimir el resultado en general, no solo en el irb / console:

silence_stream(STDOUT) do users = User.all end

NOTA: quietly dejará de usar en Ruby 2.2.0 y eventualmente se eliminará. (¡Gracias BenMorganIO !)

Más información se puede encontrar here .

Estoy atrapado con un problema bastante extraño.

Estaba probando algunas entradas de db en nuestro servidor de producción en la consola de Rails, donde casi todos los comandos daban como resultado un gran número de líneas de o / p, por lo que el canal de ssh se colgaba :(

¿Hay alguna manera de suprimir los screenfuls de la consola / IRB?

Gracias


$ irb --simple-prompt --noecho


Aquí, agregue esto a su ~ / .irbrc:

require ''ctx'' require ''awesome_print'' module IRB class Irb ctx :ap do def output_value() ap(@context.last_value) end end ctx :puts do def output_value() puts(@context.last_value) end end ctx :p do def output_value() p(@context.last_value) end end ctx :quiet do def output_value() end end end end def irb_mode(mode) ctx(mode) { irb } end

(Nota: primero debe instalar la joya ctx , aunque awesome_print es opcional, por supuesto).

Ahora cuando está en cualquier consola que usa irb, puede hacer lo siguiente:

Modo normal:

irb(main):001:0> { this:''is a complex object'', that:[ { will:''probably''}, { be:''good to read'' } ], in:{ some:{ formatted:''way''} } } => {:this=>"is a complex object", :that=>[{:will=>"probably"}, {:be=>"good to read"}], :in=>{:some=>{:formatted=>"way"}}}

... sí, justo lo que esperas.

modo awesome_print :

irb(main):002:0> irb_mode(:ap) irb#1(main):001:0> { this:''is a complex object'', that:[ { will:''probably''}, { be:''good to read'' } ], in:{ some:{ formatted:''way''} } } => { :this => "is a complex object", :that => [ [0] { :will => "probably" }, [1] { :be => "good to read" } ], :in => { :some => { :formatted => "way" } } }

... wow, ¡ahora todo se está imprimiendo asombrosamente! :)

Modo silencioso:

irb#1(main):002:0> irb_mode(:quiet) irb#1(main):001:0> { this:''is a complex object'', that:[ { will:''probably''}, { be:''good to read'' } ], in:{ some:{ formatted:''way''} } } irb#1(main):002:0>

... ah, no hay salida en absoluto? Bonito.

De todos modos, puedes agregar cualquier modo que desees, y cuando hayas terminado con ese modo, solo exit en él, y volverás al modo anterior.

Espero que haya sido útil! :)


En busca de una solución sobre cómo silenciar la salida de irb / console, también encontré una respuesta en austinruby.com :

silencio irb:

conf.return_format = ""

salida predeterminada:

conf.return_format = "=> %s/n"

límite a, por ejemplo, 512 caracteres:

conf.return_format = "=> limited output/n %.512s/n"


Puedes anexar ; nil a todos sus comandos / declaraciones.

Ejemplo:

users = User.all; nil

En realidad, irb imprime el valor (de retorno) de la última instrucción ejecutada. Por lo tanto, en este caso, solo se imprimirá nil, ya que nil es la última instrucción válida ejecutada :)


ejecutar lo siguiente dentro de IRB me funciona:

irb_context.echo = false