# @server (if possible) or at the @casemap otherwise\r
#\r
def casemap\r
- @server.casemap rescue @casemap\r
+ return @server.casemap if defined?(@server) and @server\r
+ return @casemap\r
end\r
\r
# Returns a hash with the current @server and @casemap as values of\r
# :server and :casemap\r
#\r
def server_and_casemap\r
- {:server => @server, :casemap => @casemap}\r
+ h = {}\r
+ h[:server] = @server if defined?(@server) and @server\r
+ h[:casemap] = @casemap if defined?(@casemap) and @casemap\r
+ return h\r
end\r
\r
# We allow up/downcasing with a different casemap\r
#\r
def inspect\r
str = "<#{self.class}:#{'0x%x' % self.object_id}:"\r
- str << " @server=#{@server}" if @server\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
str << ">"\r
#\r
def reset_capabilities\r
@supports = {\r
- :casemapping => 'rfc1459',\r
+ :casemapping => 'rfc1459'.to_irc_casemap,\r
:chanlimit => {},\r
:chanmodes => {\r
:typea => nil, # Type A: address lists\r
key = prekey.downcase.to_sym\r
end\r
case key\r
- when :casemapping, :network\r
+ when :casemapping\r
noval_warn(key, val) {\r
- @supports[key] = val\r
+ @supports[key] = val.to_irc_casemap\r
}\r
when :chanlimit, :idchan, :maxlist, :targmax\r
noval_warn(key, val) {\r
@supports[key][k] = v.to_i\r
}\r
}\r
- when :maxchannels\r
- noval_warn(key, val) {\r
- reparse += "CHANLIMIT=(chantypes):#{val} "\r
- }\r
- when :maxtargets\r
- noval_warn(key, val) {\r
- @supports[key]['PRIVMSG'] = val.to_i\r
- @supports[key]['NOTICE'] = val.to_i\r
- }\r
when :chanmodes\r
noval_warn(key, val) {\r
groups = val.split(',')\r
when :invex\r
val ||= 'I'\r
@supports[key] = val\r
+ when :maxchannels\r
+ noval_warn(key, val) {\r
+ reparse += "CHANLIMIT=(chantypes):#{val} "\r
+ }\r
+ when :maxtargets\r
+ noval_warn(key, val) {\r
+ @supports[key]['PRIVMSG'] = val.to_i\r
+ @supports[key]['NOTICE'] = val.to_i\r
+ }\r
+ when :network\r
+ noval_warn(key, val) {\r
+ @supports[key] = val\r
+ }\r
when :nicklen\r
noval_warn(key, val) {\r
@supports[key] = val.to_i\r