Module IRB::HistorySavingAbility
In: lib/irb/ext/save-history.rb

Methods

Included Modules

Readline

Public Class methods

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

[Source]

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

Public Instance methods

[Source]

    # File lib/irb/ext/save-history.rb, line 75
75:     def load_history
76:       hist = IRB.conf[:HISTORY_FILE]
77:       hist = IRB.rc_file("_history") unless hist
78:       if File.exist?(hist)
79:         open(hist) do |f|
80:           f.each {|l| HISTORY << l.chomp}
81:         end
82:       end
83:     end

[Source]

    # File lib/irb/ext/save-history.rb, line 85
85:     def save_history
86:       if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) > 0
87:         if history_file = IRB.conf[:HISTORY_FILE]
88:           history_file = File.expand_path(history_file)
89:         end
90:         history_file = IRB.rc_file("_history") unless history_file
91:         open(history_file, 'w' ) do |f|
92:           hist = HISTORY.to_a
93:           f.puts(hist[-num..-1] || hist)
94:         end
95:       end
96:     end

[Validate]