Due to its Scandinavian origins, IRC has strange case mappings, which consider the characters {}|^ as the uppercase equivalents of # []\~.
This is however not the same on all IRC servers: some use standard ASCII casemapping, other do not consider ^ as the uppercase of ~
Returns the Casemap with the given name
# File lib/rbot/irc.rb, line 86 def Casemap.get(name) @@casemaps[name.to_sym][:casemap] end
Create a new casemap with name name, uppercase characters upper and lowercase characters lower
# File lib/rbot/irc.rb, line 74 def initialize(name, upper, lower) @key = name.to_sym raise "Casemap #{name.inspect} already exists!" if @@casemaps.has_key?(@key) @@casemaps[@key] = { :upper => upper, :lower => lower, :casemap => self } end
Two Casemaps are equal if they have the same upper and lower ranges
# File lib/rbot/irc.rb, line 122 def ==(arg) other = arg.to_irc_casemap return self.upper == other.upper && self.lower == other.lower end
A Casemap is represented by its lower/upper mappings
# File lib/rbot/irc.rb, line 110 def inspect self.__to_s__[0..-2] + " #{upper.inspect} ~(#{self})~ #{lower.inspect}>" end
Retrieve the 'lowercase characters' of this Casemap
# File lib/rbot/irc.rb, line 98 def lower @@casemaps[@key][:lower] end
Give a warning if arg and self are not the same Casemap
# File lib/rbot/irc.rb, line 129 def must_be(arg) other = arg.to_irc_casemap if self == other return true else warn "Casemap mismatch (#{self.inspect} != #{other.inspect})" return false end end
Return a Casemap based on the receiver
# File lib/rbot/irc.rb, line 104 def to_irc_casemap self end
As a String we return our name
# File lib/rbot/irc.rb, line 116 def to_s @key.to_s end
Retrieve the 'uppercase characters' of this Casemap
# File lib/rbot/irc.rb, line 92 def upper @@casemaps[@key][:upper] end
Generated with the Darkfish Rdoc Generator 2.