return true if self.respond_to? :empty and self.empty?\r
return false\r
end\r
+\r
+ # We alias the to_s method to __to_s__ to make\r
+ # it accessible in all classes\r
+ alias :__to_s__ :to_s \r
end\r
\r
# The Irc module is used to keep all IRC-related classes\r
# A Casemap is represented by its lower/upper mappings\r
#\r
def inspect\r
- "#<#{self.class}:#{'0x%x'% self.object_id}: #{upper.inspect} ~(#{self})~ #{lower.inspect}>"\r
+ self.__to_s__[0..-2] + " #{upper.inspect} ~(#{self})~ #{lower.inspect}>"\r
end\r
\r
# As a String we return our name\r
end\r
\r
def inspect\r
- "#<#{self.class}[#{@element_class}]:#{'0x%x' % self.object_id}: #{super}>"\r
+ self.__to_s__[0..-2].sub(/:[^:]+$/,"[#{@element_class}]\\0") + " #{super}>"\r
end\r
\r
# Private method to check the validity of the elements passed to it\r
# one), its casemap and the nick, user and host part\r
#\r
def inspect\r
- str = "<#{self.class}:#{'0x%x' % self.object_id}:"\r
+ str = self.__to_s__[0..-2]\r
str << " @server=#{@server}" if defined?(@server) and @server\r
str << " @nick=#{@nick.inspect} @user=#{@user.inspect}"\r
str << " @host=#{@host.inspect} casemap=#{casemap.inspect}"\r
alias :to_s :name\r
\r
def inspect\r
- str = "<#{self.class}:#{'0x%x' % self.object_id}:"\r
+ str = self.__to_s__[0..-2]\r
str << " on server #{server}" if server\r
str << " @name=#{@name.inspect} @topic=#{@topic.text.inspect}"\r
str << " @users=[#{user_nicks.sort.join(', ')}]"\r
}\r
}\r
\r
- str = "<#{self.class}:#{'0x%x' % self.object_id}:"\r
+ str = self.__to_s__[0..-2]\r
str << " @hostname=#{hostname}"\r
str << " @channels=#{chans}"\r
str << " @users=#{users}"\r
myself.nick
end
+ # bot inspection
+ # TODO multiserver
+ def inspect
+ ret = self.to_s[0..-2]
+ ret << ' version=' << $version.inspect
+ ret << ' botclass=' << botclass.inspect
+ ret << ' lang="' << lang.language
+ if defined?(GetText)
+ ret << '/' << locale
+ end
+ ret << '"'
+ ret << ' nick=' << nick.inspect
+ ret << ' server='
+ if server
+ ret << (server.to_s + (socket ?
+ ' [' << socket.server_uri.to_s << ']' : '')).inspect
+ unless server.channels.empty?
+ ret << " channels="
+ ret << server.channels.map { |c|
+ "%s%s" % [c.modes_of(nick).map { |m|
+ server.prefix_for_mode(m)
+ }, c.name]
+ }.inspect
+ end
+ else
+ ret << '(none)'
+ end
+ ret << ' plugins=' << plugins.inspect
+ ret << ">"
+ end
+
+
# create a new Bot with botclass +botclass+
def initialize(botclass, params = {})
# Config for the core bot
bot_associate(nil)
end
+ def inspect
+ ret = self.to_s[0..-2]
+ ret << ' corebotmodules='
+ ret << @botmodules[:CoreBotModule].map { |m|
+ m.name
+ }.inspect
+ ret << ' plugins='
+ ret << @botmodules[:Plugin].map { |m|
+ m.name
+ }.inspect
+ ret << ">"
+ end
+
# Reset lists of botmodules
def reset_botmodule_lists
@botmodules[:CoreBotModule].clear