require 'shell' sh = Shell.new sh.verbose = false sh.debug = false print sh.system('date')
Wed Nov 10 13:08:09 EST 2021
shell(#<Th:0x00007fd016064058 run>): /bin/date Wed Nov 10 13:08:09 EST 2021
La línea no deseada proviene de Shell::CommandProcessor#notify
Después de algunas investigaciones, parece haber una falla de diseño confusa (¿o característica?) en Shell
. Inicialmente, parece que debería poder mutar verbose
y debug
en una instancia de Shell
, pero resulta que el método de notify
raíz vive en la clase , no en la instancia.
Por lo tanto, la configuración del nivel de instancia solo tendrá un efecto limitado, ya que el método de clase Shell.notify
no tendrá conocimiento de la configuración de la instancia.
Solución: use la configuración de nivel de clase en su lugar:
Shell.verbose = false Shell.debug = false
La salida ahora será solo:
Wed Nov 10 13:08:09 EST 2021