Override subclass.
# File lib/net/irc/server.rb, line 77 def available_channel_modes "spknm" end
Override subclass.
# File lib/net/irc/server.rb, line 72 def available_user_modes "eixwy" end
Close this session.
# File lib/net/irc/server.rb, line 112 def finish begin @socket.close rescue end on_disconnected end
Do nothing. This is for avoiding error on calling super. So you can always call super at subclass.
# File lib/net/irc/server.rb, line 164 def method_missing(name, *args) end
Call when socket connected.
# File lib/net/irc/server.rb, line 144 def on_connected end
Call when socket closed.
# File lib/net/irc/server.rb, line 148 def on_disconnected end
Catch all messages. If this method return true, aother callback will not be called.
# File lib/net/irc/server.rb, line 153 def on_message(m) end
Default NICK callback. Set @nick.
# File lib/net/irc/server.rb, line 128 def on_nick(m) @nick = m.params[0] @prefix = Prefix.new("#{@nick}!#{@user}@#{@host}") if defined? @prefix end
Default PASS callback. Set @pass.
# File lib/net/irc/server.rb, line 122 def on_pass(m) @pass = m.params[0] end
Default PING callback. Response PONG.
# File lib/net/irc/server.rb, line 157 def on_ping(m) post server_name, PONG, m.params[0] end
Default USER callback. Set @user, @real, @host and call initial_message.
# File lib/net/irc/server.rb, line 135 def on_user(m) @user, @real = m.params[0], m.params[3] @nick ||= @user @host = @socket.peeraddr[2] @prefix = Prefix.new("#{@nick}!#{@user}@#{@host}") initial_message end
Override subclass.
# File lib/net/irc/server.rb, line 62 def server_name "net-irc" end
Override subclass.
# File lib/net/irc/server.rb, line 67 def server_version "0.0.0" end
Start session loop.
# File lib/net/irc/server.rb, line 90 def start on_connected while l = @socket.gets begin @log.debug "RECEIVE: #{l.chomp}" m = Message.parse(l) next if on_message(m) === true name = "on_#{(COMMANDS[m.command.upcase] || m.command).downcase}" send(name, m) if respond_to?(name) break if m.command == QUIT rescue Message::InvalidMessage @log.error "MessageParse: " + l.inspect end end rescue IOError ensure finish end
Generated with the Darkfish Rdoc Generator 2.