Class IRB::History
In: lib/irb/ext/history.rb
Parent: Object

Methods

[]   inspect   new   push   size  

External Aliases

inspect -> real_inspect

Public Class methods

[Source]

    # File lib/irb/ext/history.rb, line 54
54:     def initialize(size = 16)
55:       @size = size
56:       @contents = []
57:     end

Public Instance methods

[Source]

    # File lib/irb/ext/history.rb, line 66
66:     def [](idx)
67:       begin
68:         if idx >= 0
69:           @contents.find{|no, val| no == idx}[1]
70:         else
71:           @contents[idx][1]
72:         end
73:       rescue NameError
74:         nil
75:       end
76:     end

[Source]

     # File lib/irb/ext/history.rb, line 85
 85:     def inspect
 86:       if @contents.empty?
 87:         return real_inspect
 88:       end
 89: 
 90:       unless (last = @contents.pop)[1].equal?(self)
 91:         @contents.push last
 92:         last = nil
 93:       end
 94:       str = @contents.collect{|no, val|
 95:         if val.equal?(self)
 96:           "#{no} ...self-history..."
 97:         else
 98:           "#{no} #{val.inspect}"
 99:         end
100:       }.join("\n")
101:       if str == ""
102:         str = "Empty."
103:       end
104:       @contents.push last if last
105:       str
106:     end

[Source]

    # File lib/irb/ext/history.rb, line 78
78:     def push(no, val)
79:       @contents.push [no, val]
80:       @contents.shift if @size != 0 && @contents.size > @size
81:     end

[Source]

    # File lib/irb/ext/history.rb, line 59
59:     def size(size)
60:       if size != 0 && size < @size 
61:         @contents = @contents[@size - size .. @size]
62:       end
63:       @size = size
64:     end

[Validate]