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