# File lib/rbot/irc.rb, line 618 def initialize(str="", opts={}) # First of all, check for server/casemap option # init_server_or_casemap(opts) # Now we can see if the given string _str_ is an actual Netmask if str.respond_to?(:to_str) case str.to_str # We match a pretty generic string, to work around non-compliant # servers when /^(?:(\S+?)(?:(?:!(\S+?))?@(\S+))?)?$/ # We do assignment using our internal methods self.nick = $1 self.user = $2 self.host = $3 else raise ArgumentError, "#{str.to_str.inspect} does not represent a valid #{self.class}" end else raise TypeError, "#{str} cannot be converted to a #{self.class}" end end