summaryrefslogtreecommitdiff
path: root/lib/rbot/ircsocket.rb
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2007-02-11 09:23:12 +0000
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2007-02-11 09:23:12 +0000
commit4179ece26a79077775c7ec35a77445fc917f2788 (patch)
treeef978248b9fb4f8227e9b1a172b9d7ff73ee33fb /lib/rbot/ircsocket.rb
parent10025272f5d85daa27b73dcf2c90c33fa3f216fc (diff)
Start work on preferring size to length: it's the same for arrays, and will be more correct in most cases when proper support for multibyte strings will be implemented (via package or because of ruby 2)
Diffstat (limited to 'lib/rbot/ircsocket.rb')
-rw-r--r--lib/rbot/ircsocket.rb44
1 files changed, 23 insertions, 21 deletions
diff --git a/lib/rbot/ircsocket.rb b/lib/rbot/ircsocket.rb
index e70528ea..973ae9b8 100644
--- a/lib/rbot/ircsocket.rb
+++ b/lib/rbot/ircsocket.rb
@@ -3,9 +3,9 @@ class ::String
# by the IRCd
def irc_send_penalty
# According to eggrdop, the initial penalty is
- penalty = 1 + self.length/100
+ penalty = 1 + self.size/100
# on everything but UnderNET where it's
- # penalty = 2 + self.length/120
+ # penalty = 2 + self.size/120
cmd, pars = self.split($;,2)
debug "cmd: #{cmd}, pars: #{pars.inspect}"
@@ -14,29 +14,29 @@ class ::String
chan, nick, msg = pars.split
chan = chan.split(',')
nick = nick.split(',')
- penalty += nick.length
- penalty *= chan.length
+ penalty += nick.size
+ penalty *= chan.size
when :MODE
chan, modes, argument = pars.split
extra = 0
if modes
extra = 1
if argument
- extra += modes.split(/\+|-/).length
+ extra += modes.split(/\+|-/).size
else
- extra += 3 * modes.split(/\+|-/).length
+ extra += 3 * modes.split(/\+|-/).size
end
end
if argument
- extra += 2 * argument.split.length
+ extra += 2 * argument.split.size
end
- penalty += extra * chan.split.length
+ penalty += extra * chan.split.size
when :TOPIC
penalty += 1
- penalty += 2 unless pars.split.length < 2
+ penalty += 2 unless pars.split.size < 2
when :PRIVMSG, :NOTICE
dests = pars.split($;,2).first
- penalty += dests.split(',').length
+ penalty += dests.split(',').size
when :WHO
# I'm too lazy to implement this one correctly
penalty += 5
@@ -85,12 +85,13 @@ module Irc
end
def length
- length = 0
+ len = 0
@storage.each {|c|
- length += c[1].length
+ len += c[1].size
}
- return length
+ return len
end
+ alias :size :length
def empty?
@storage.empty?
@@ -113,7 +114,7 @@ module Irc
return nil
end
save_idx = @last_idx
- @last_idx = (@last_idx + 1) % @storage.length
+ @last_idx = (@last_idx + 1) % @storage.size
mess = @storage[@last_idx][1].first
@last_idx = save_idx
return mess
@@ -124,7 +125,7 @@ module Irc
warning "trying to access empty ring"
return nil
end
- @last_idx = (@last_idx + 1) % @storage.length
+ @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
@@ -180,10 +181,11 @@ module Irc
def length
len = 0
@rings.each { |r|
- len += r.length
+ len += r.size
}
len
end
+ alias :size :length
def next
if empty?
@@ -195,8 +197,8 @@ module Irc
mess = @rings[0].first
else
save_ring = @last_ring
- (@rings.length - 1).times {
- @last_ring = (@last_ring % (@rings.length - 1)) + 1
+ (@rings.size - 1).times {
+ @last_ring = (@last_ring % (@rings.size - 1)) + 1
if !@rings[@last_ring].empty?
mess = @rings[@last_ring].next
break
@@ -217,8 +219,8 @@ module Irc
if !@rings[0].empty?
return @rings[0].shift
end
- (@rings.length - 1).times {
- @last_ring = (@last_ring % (@rings.length - 1)) + 1
+ (@rings.size - 1).times {
+ @last_ring = (@last_ring % (@rings.size - 1)) + 1
if !@rings[@last_ring].empty?
return @rings[@last_ring].shift
end
@@ -420,7 +422,7 @@ module Irc
return
end
@flood_send = now if @flood_send < now
- debug "can send #{@sendq_burst - @burst} lines, there are #{@sendq.length} to send"
+ debug "can send #{@sendq_burst - @burst} lines, there are #{@sendq.size} to send"
while !@sendq.empty? and @burst < @sendq_burst and @flood_send - now < MAX_IRC_SEND_PENALTY
debug "sending message (#{@flood_send - now} < #{MAX_IRC_SEND_PENALTY})"
puts_critical(@sendq.shift, true)