2010-11-19 30 views
11

Puede sonar como una pregunta para principiantes (y es porque soy nuevo en Ruby y IRB), pero ¿hay alguna manera de guardar los comandos que usted hizo en IRB para archivar? Estoy jugando con WATIR y me encantaría guardar todas mis entradas en el archivo en lugar de copiar y pegar cada una.¿Cómo se guardan las entradas IRB en un archivo .rb?

¡Gracias por la ayuda!

+0

Relacionado con: http://stackoverflow.com/questions/4218940/frequently-flush-irb-history-to-file – tinifni

Respuesta

27

En mi máquina me puedo poner esto en mi archivo .irbrc (que se encuentra en su directorio principal):

Kernel.at_exit { 
    File.open("irb.log", "w") do |f| 
    f << Readline::HISTORY.to_a.join("\n") 
    end 
} 

crea un archivo irb.log que contiene su historial de lectura. Irb usa readline para la entrada de comando. Puede que esté configurado para no usar readline para algunas personas, no lo sé. Y tal vez la historia se truncará en algún momento, o tal vez sea modificada por ciertos comandos que haga en su sesión de IRB ... pero pruébelo y vea si funciona.

Si desea que la petición IRB y el resultado de cada comando que se incluirán en el registro, a continuación, sólo tiene que utilizar tee a grabar la salida del IRB:

$ irb | tee irb.log 
+0

1! ¡Solución elegante! – jwueller

+0

¡Lo usé y funcionó como un amuleto! Gracias :) – Enrique

0

Encontré esta pregunta cuando busco hacer lo mismo. Terminé cambiando de IRB a Pry; es un proyecto REPL independiente para Ruby que tiene una gran cantidad de características avanzadas que no son compatibles con IRB.

Bien vale la pena echarle un vistazo.

Pry

Cuestiones relacionadas