Witam,
Mam kolejny problem zwiazany z programowaniem w samym Ruby.
Tzn napisalem sobie prostego bot’a do IRC ma za zadanie polaczyć się z kanałem ( i to robi) ale jego druga misja to, zeby logował wszystko co się dzieje na kanale do bazy.
[code]require ‘socket’
require ‘dbi’
sock = TCPSocket.new(‘irc.serv.com’,6667)
sock.puts(“USER simpleRubyBot lorem ipsum dolor”)
sock.puts(“NICK bubus13244”)
sock.puts(“JOIN #chan”)
db = DBI.connect(“DBI:Mysql:irc:localhost”,“root”,“h4sl0h0st1ng”)
loop do
msg = sock.gets
puts msg if msg != nil
@db.do(“INSERT INTO messages (messages) VALUES (#{msg})”)
end[/code]
Po odpaleniu skryptu: roby bot.rb dostaje o to taki błąd
bash-3.1$ ruby bot.rb
:TheGame.lcirc.net NOTICE AUTH :*** Looking up your hostname...
bot.rb:14: undefined method `do' for nil:NilClass (NoMethodError)
from bot.rb:11:in `loop'
from bot.rb:11
bash-3.1$
gdy zachaszyje linijke @db.do(“INSERT INTO messages (messages) VALUES (#{msg})”)
to bot siedzi na ircu, a tak niestetyu tylko wchodzi i skrypt sie wylancza.
Ktoś wie dlaczego??