Articles of stdout

Proceso hijo de horquilla con tiempo de espera y salida de captura

Digamos que tengo una función como la de abajo, ¿cómo capturo la salida de la llamada Process.spawn? También debería poder finalizar el proceso si demora más que un tiempo de espera especificado. Tenga en cuenta que la función también debe ser multiplataforma (Windows / Linux). def execute_with_timeout!(command) begin pid = Process.spawn(command) # How do I […]

¿Cómo hacer que Rails.logger imprima en la consola / stdout al ejecutar rspec?

Igual que el título: ¿Cómo obtener la impresión Rails.logger en la consola / stdout al ejecutar rspec? P.ej. Rails.logger.info “I WANT this to go to console/stdout when rspec is running” puts “Like how the puts function works” Todavía quiero que Rails.logger vaya a log/test.log también.

Fusionar stdout y stderr en popen

En el popen / spawn de Ruby, ¿cómo fusiono tanto STDOUT como STDERR en una única secuencia sin tener que usar >2&1 ? En Python, esto sería: >>> import subprocess >>> subprocess.check_output(‘my_prog args’, stderr=subprocess.STDOUT, shell=True) Tenga en cuenta el argumento stderr . Uso Open3 , ya que no quiero solo la salida estándar, pero ya […]

Suprimir STDOUT desde una extensión de Ruby C

Estoy usando la gem dep_selector en un proyecto y no puedo averiguar cómo suprimir la salida estándar de las extensiones C de la biblioteca. El código en cuestión que quiero suprimir está aquí: https://github.com/RiotGames/knife_cookbook_dependencies/blob/master/lib/kcd/shelf.rb#L26 Intenté esto: real_stdout = $stdout $stdout = StringIO.new real_stderr = $stderr $stderr = StringIO.new puts “This gets suppressed correctly” selector.find_solution( … […]

Sinatra 1.3 Streaming w / Ruby redirección stdout

Me gustaría usar la capacidad de transmisión de Sinatra introducida en 1.3 junto con una redirección de stdout. Básicamente sería una salida de transmisión en vivo de un trabajo de larga duración. Analicé esta pregunta y la muestra de transmisión de Sinatra en el archivo README. Ejecutando 1.8.7 en OSX: require ‘stringio’ require ‘sinatra’ $stdout.sync […]

Problema al redireccionar la salida estándar en el script Ruby

Tengo el siguiente script de prueba de Ruby: require ‘tempfile’ tempfile = Tempfile.new ‘test’ $stderr.reopen tempfile $stdout.reopen tempfile puts ‘test stdout’ warn ‘test stderr’ `mail -s ‘test’ my@email.com < #{tempfile.path}` tempfile.close tempfile.unlink $stderr.reopen STDERR $stdout.reopen STDOUT El correo electrónico que recibo tiene los contenidos: test stderr ¿Por qué stderr está redireccionando correctamente pero no stdout? […]

Ejecutando un progtwig interactivo de Ruby

Estoy tratando de ejecutar gnuplot desde ruby ​​(sin usar una gem externa) y analizar su salida textual también. Intenté IO.popen , PTY.spawn y Open3.popen3 pero cada vez que trato de obtener la salida simplemente se “cuelga” -Supongo que esperar más salida. Siento que está hecho de alguna manera usando Thread.new pero no pude encontrar la […]

Reasignando $ stdout global a la consola – ruby

Estoy tratando de establecer $ stdout para escribir en un archivo temporalmente y luego volver a un archivo. test.rb : old_stdout = $stdout $stdout.reopen(“mytestfile.out”,’w+’) puts “this goes in mytestfile” $stdout= old_stdout puts “this should be on the console” $stdout.reopen(“mytestfile1.out”,’w+’) puts “this goes in mytestfile1:” $stdout = old_stdout puts “this should be back on the console” […]

¿Cómo imprimir stdout inmediatamente?

¿Cómo puedo dar salida inmediatamente a stdout ? stdout se imprimirá después de que se complete toda la entrada. require ‘open3’ def run(cmd) Open3.popen3(cmd) do |stdin, stdout, stderr, thread| Thread.new do stdout.each {|l| puts l} end Thread.new do while thread.alive? stdin.puts $stdin.gets end end thread.join end end run (“ruby file_to_test.rb”) file_to_test.rb: puts “please, enter s” […]

¿Puedo usar RSpec para simular stdin / stdout para probar las lecturas y escrituras de la consola?

Mi progtwig Ruby lee las líneas desde la stdin y utiliza las copias para imprimir en la stdout stdin (el terminal). ¿Puedo usar RSpec para probar las lecturas y escrituras? ¿Puedo inyectar una cadena a mi progtwig como estaba escrito en stdin y al mismo tiempo verificar la salida? line = STDIN.read.chomp.split Además, tengo las […]