2010-11-19 9 views
11

Potrebbe sembrare una domanda per principianti (ed è da quando sono nuovo a Ruby e IRB) ma c'è un modo per salvare i comandi che hai fatto in IRB per archiviare? Sto giocando con WATIR e mi piacerebbe salvare tutti i miei input in file invece di copiarli e incollarli.Come si salvano gli input IRB in un file .rb?

Grazie per l'aiuto!

+0

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

risposta

27

Sulla mia macchina posso mettere questo nel mio file .irbrc (che si trova nella vostra home directory):

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

Si crea un file irb.log che contiene la cronologia delle letture. Irb usa readline per l'input di comando. Potrebbe essere configurato per non usare readline per alcune persone, non lo so. E forse la storia verrà troncata ad un certo punto, o forse verrà modificata da certi comandi che fai nella tua sessione irb ... ma provalo e vedi se funziona.

Se si desidera che il prompt IRB e il risultato di ogni comando da inserire nel registro, poi basta usare tee per registrare l'uscita di IRB:

$ irb | tee irb.log 
+0

+1! Soluzione elegante! – jwueller

+0

Ho usato questo e ha funzionato come un fascino! Grazie :) – Enrique

0

Ho trovato questa domanda cercando di fare la stessa cosa. Ho finito per passare da IRB a Pry; è un progetto REPL separato per Ruby che ha un'intera serie di funzionalità avanzate non supportate in IRB.

Vale la pena dare un'occhiata.

Pry

Problemi correlati