histoire irb souvent au ras de fichier
Question
irb peut écrire l'historique des commandes dans un fichier, mais il ne fait que quand votre session se termine RIR.
Je voudrais écrire plus souvent l'histoire de ma commande:. Aussi souvent que sur chaque commande (comme historique du shell), mais il ne doit pas être si souvent
Y at-il un cadre .irbrc pour cela? Ou vais-je devoir pirater la source ... irb
La solution
Après avoir piraté irb beaucoup de temps d'une, bonne chance avec une solution propre. Au lieu de cela, je vous recommande RIPL , une alternative irb. Par défaut, il enregistre l'histoire de façon plus intelligente (par exemple, même lorsque vous sortez brusquement avec Control-D).
Si vous voulez l'histoire d'écriture après chaque commande, il est facile avec RIPL car il est conçu pour être étendu avec des plugins:
# add to your ~/.riplrc
module Ripl::ImmediateHistory
# write to history after every eval
def eval_input(input)
super
File.open(history_file, 'a') {|f| f.puts input }
end
# disable writing to history when ripl exits
def write_history; end
end
Ripl::Shell.send :include, Ripl::ImmediateHistory
Autres conseils
A partir de là: http://blog.nicksieger.com/articles / 2006/04/23 / peaufinage- irb
module Readline
module History
LOG = "#{ENV['HOME']}/.irb-history"
def self.write_log(line)
File.open(LOG, 'ab') {|f| f << "#{line}
"}
end
def self.start_session_log
write_log("
# session start: #{Time.now}
")
at_exit { write_log("
# session stop: #{Time.now}
") }
end
end
alias :old_readline :readline
def readline(*args)
ln = old_readline(*args)
begin
History.write_log(ln)
rescue
end
ln
end
end
Readline::History.start_session_log