ichverstehe-isaac 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/isaac.gemspec +2 -2
  2. data/lib/isaac.rb +16 -12
  3. metadata +2 -2
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "isaac"
3
- s.version = "0.2.4"
4
- s.date = "2009-04-01"
3
+ s.version = "0.2.5"
4
+ s.date = "2009-04-25"
5
5
  s.summary = "The smallish DSL for writing IRC bots"
6
6
  s.email = "harry@vangberg.name"
7
7
  s.homepage = "http://github.com/ichverstehe/isaac"
@@ -119,25 +119,25 @@ module Isaac
119
119
  def parse(input)
120
120
  puts "<< #{input}" if @bot.config.verbose
121
121
  case input.chomp
122
- when /^:\S+ 00([1-4])/
123
- @registration << $1.to_i
122
+ when /(^:\S+ )?00([1-4])/
123
+ @registration << $2.to_i
124
124
  if registered?
125
125
  @queue.unlock
126
126
  @bot.dispatch(:connect)
127
127
  end
128
- when /^:(\S+)!\S+ PRIVMSG \S+ :?\001VERSION\001/
129
- message "NOTICE #{$1} :\001VERSION #{@bot.config.version}\001"
128
+ when /(^:(\S+)!\S+ )?PRIVMSG \S+ :?\001VERSION\001/
129
+ message "NOTICE #{$2} :\001VERSION #{@bot.config.version}\001"
130
130
  when /^PING (\S+)/
131
131
  @queue.unlock
132
132
  message "PONG #{$1}"
133
- when /^:(\S+)!(\S+) PRIVMSG (\S+) :?(.*)/
134
- env = { :nick => $1, :userhost => $2, :channel => $3, :message => $4 }
133
+ when /(^:(\S+)!(\S+) )?PRIVMSG (\S+) :?(.*)/
134
+ env = { :nick => $2, :userhost => $3, :channel => $4, :message => $5 }
135
135
  type = env[:channel].match(/^#/) ? :channel : :private
136
136
  @bot.dispatch(type, env)
137
- when /^:\S+ ([4-5]\d\d) \S+ (\S+)/
138
- env = {:error => $1.to_i, :message => $1, :nick => $2, :channel => $2}
137
+ when /(^:\S+ )?([4-5]\d\d) \S+ (\S+)/
138
+ env = {:error => $2.to_i, :message => $2, :nick => $3, :channel => $3}
139
139
  @bot.dispatch(:error, env)
140
- when /^:\S+ PONG/
140
+ when /(^:\S+ )?PONG/
141
141
  @queue.unlock
142
142
  end
143
143
  end
@@ -178,7 +178,7 @@ module Isaac
178
178
  end
179
179
 
180
180
  def transfered_after_next_send
181
- @transfered + @queue.first.size + 1 # the 1 is for \n
181
+ @transfered + @queue.first.size + 2 # the 2 is for \r\n
182
182
  end
183
183
 
184
184
  def exceed_limit?
@@ -187,7 +187,11 @@ module Isaac
187
187
 
188
188
  def lock_and_ping
189
189
  lock
190
- @socket.puts "PING :#{@server}"
190
+ @socket.print "PING :#{@server}\r\n"
191
+ end
192
+
193
+ def next_message
194
+ @queue.shift.to_s.chomp + "\r\n"
191
195
  end
192
196
 
193
197
  def invoke
@@ -196,7 +200,7 @@ module Isaac
196
200
  lock_and_ping; break
197
201
  else
198
202
  @transfered = transfered_after_next_send
199
- @socket.puts @queue.shift
203
+ @socket.print next_message
200
204
  # puts ">> #{msg}" if @bot.config.verbose
201
205
  end
202
206
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ichverstehe-isaac
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harry Vangberg
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-01 00:00:00 -07:00
12
+ date: 2009-04-25 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15