class Irc::QueueRing
Public Class Methods
Public Instance Methods
Source
# File lib/rbot/ircsocket.rb, line 102 def length len = 0 @storage.each {|c| len += c[1].size } return len end
Also aliased as: size
Source
# File lib/rbot/ircsocket.rb, line 126 def next if empty? warning "trying to access empty ring" return nil end save_idx = @last_idx @last_idx = (@last_idx + 1) % @storage.size mess = @storage[@last_idx][1].first @last_idx = save_idx return mess end
Source
# File lib/rbot/ircsocket.rb, line 115 def push(mess, chan) cmess = @storage.assoc(chan) if cmess idx = @storage.index(cmess) cmess[1] << mess @storage[idx] = cmess else @storage << [chan, [mess]] end end
Source
# File lib/rbot/ircsocket.rb, line 138 def shift if empty? warning "trying to access empty ring" return nil end @last_idx = (@last_idx + 1) % @storage.size mess = @storage[@last_idx][1].shift @storage.delete(@storage[@last_idx]) if @storage[@last_idx][1] == [] return mess end