In Files

  • irb/ext/save-history.rb

Included Modules

IRB::HistorySavingAbility

Public Class Methods

extended(obj) click to toggle source

def HistorySavingAbility.create_finalizer

proc do
if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) > 0
  if hf = IRB.conf[:HISTORY_FILE]
    file = File.expand_path(hf)
  end
  file = IRB.rc_file("_history") unless file
  open(file, 'w' ) do |f|
    hist = HISTORY.to_a
    f.puts(hist[-num..-1] || hist)
  end
end
end

end

 
               # File irb/ext/save-history.rb, line 65
    def HistorySavingAbility.extended(obj)
#      ObjectSpace.define_finalizer(obj, HistorySavingAbility.create_finalizer)
      IRB.conf[:AT_EXIT].push proc{obj.save_history}
      obj.load_history
      obj
    end
            

Public Instance Methods

load_history() click to toggle source
 
               # File irb/ext/save-history.rb, line 72
def load_history
  if history_file = IRB.conf[:HISTORY_FILE]
    history_file = File.expand_path(history_file)
  end
  history_file = IRB.rc_file("_history") unless history_file
  if File.exist?(history_file)
    open(history_file) do |f|
      f.each {|l| HISTORY << l.chomp}
    end
  end
end
            
save_history() click to toggle source
 
               # File irb/ext/save-history.rb, line 84
def save_history
  if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) > 0
    if history_file = IRB.conf[:HISTORY_FILE]
      history_file = File.expand_path(history_file)
    end
    history_file = IRB.rc_file("_history") unless history_file
    open(history_file, 'w' ) do |f|
      hist = HISTORY.to_a
      f.puts(hist[-num..-1] || hist)
    end
  end
end