class Irc::Casemap
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 ~
Public Class Methods
get(name)
click to toggle source
Returns the Casemap
with the given name
# File lib/rbot/irc.rb, line 86 def Casemap.get(name) @@casemaps[name.to_sym][:casemap] end
new(name, upper, lower)
click to toggle source
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
Public Instance Methods
==(arg)
click to toggle source
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
inspect()
click to toggle source
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
lower()
click to toggle source
Retrieve the ‘lowercase characters’ of this Casemap
# File lib/rbot/irc.rb, line 98 def lower @@casemaps[@key][:lower] end
must_be(arg)
click to toggle source
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
to_irc_casemap()
click to toggle source
Return a Casemap
based on the receiver
# File lib/rbot/irc.rb, line 104 def to_irc_casemap self end
to_s()
click to toggle source
As a String
we return our name
# File lib/rbot/irc.rb, line 116 def to_s @key.to_s end
upper()
click to toggle source
Retrieve the ‘uppercase characters’ of this Casemap
# File lib/rbot/irc.rb, line 92 def upper @@casemaps[@key][:upper] end