3 # $Release Version: 0.9.5$
5 # $Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
6 # by Keiju ISHITSUKA(keiju@ruby-lang.org)
17 NOPRINTING_IVARS.push "@eval_history_values"
19 alias _set_last_value set_last_value
21 def set_last_value(value)
22 _set_last_value(value)
24 # @workspace.evaluate self, "_ = IRB.CurrentContext.last_value"
25 if @eval_history #and !@eval_history_values.equal?(llv)
26 @eval_history_values.push @line_no, @last_value
27 @workspace.evaluate self, "__ = IRB.CurrentContext.instance_eval{@eval_history_values}"
33 attr_reader :eval_history
36 if defined?(@eval_history) && @eval_history
37 @eval_history_values.size(no)
39 @eval_history_values = History.new(no)
40 IRB.conf[:__TMP__EHV__] = @eval_history_values
41 @workspace.evaluate(self, "__ = IRB.conf[:__TMP__EHV__]")
42 IRB.conf.delete(:__TMP_EHV__)
45 @eval_history_values = nil
52 @RCS_ID='-$Id: history.rb 11708 2007-02-12 23:01:19Z shyouhei $-'
54 def initialize(size = 16)
60 if size != 0 && size < @size
61 @contents = @contents[@size - size .. @size]
69 @contents.find{|no, val| no == idx}[1]
79 @contents.push [no, val]
80 @contents.shift if @size != 0 && @contents.size > @size
83 alias real_inspect inspect
90 unless (last = @contents.pop)[1].equal?(self)
94 str = @contents.collect{|no, val|
96 "#{no} ...self-history..."
98 "#{no} #{val.inspect}"
104 @contents.push last if last