Class Irc::Casemap
In: lib/rbot/irc.rb
Parent: Object
BasicUserMessage JoinMessage NamesMessage WhoisMessage ModeChangeMessage KickMessage MotdMessage QuitMessage BanlistMessage UserMessage NoSuchTargetMessage TopicMessage NickMessage WelcomeMessage UnknownMessage InviteMessage PartMessage NetmaskList UserList ArrayOf ChannelList Netmask User\n[lib/rbot/botuser.rb\nlib/rbot/irc.rb] Channel Singleton RfcCasemap StrictRfcCasemap AsciiCasemap Casemap PrivMessage NoticeMessage TokyoCabinet::BDB CIBDB Btree CIBtree Socket MessageQueue QueueRing Client DBHash\n[lib/rbot/registry/bdb.rb\nlib/rbot/registry/tc.rb] DBTree\n[lib/rbot/registry/bdb.rb\nlib/rbot/registry/tc.rb] Server NetmaskDb Bot\n[lib/rbot/botuser.rb\nlib/rbot/config.rb\nlib/rbot/ircbot.rb\nlib/rbot/language.rb\nlib/rbot/message.rb\nlib/rbot/messagemapper.rb\nlib/rbot/plugins.rb\nlib/rbot/rbotconfig.rb\nlib/rbot/registry/bdb.rb\nlib/rbot/registry/tc.rb] lib/rbot/ircsocket.rb lib/rbot/rfc2812.rb lib/rbot/registry/tc.rb lib/rbot/irc.rb lib/rbot/maskdb.rb lib/rbot/message.rb lib/rbot/messagemapper.rb lib/rbot/botuser.rb lib/rbot/registry/tc.rb (null) BotConfig PKGConfig ServerOrCasemap Irc dot/m_35_0.png

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 ~

Methods

==   get   inspect   lower   must_be   new   to_irc_casemap   to_s   upper  

Public Class methods

Returns the Casemap with the given name

[Source]

    # File lib/rbot/irc.rb, line 86
86:     def Casemap.get(name)
87:       @@casemaps[name.to_sym][:casemap]
88:     end

Create a new casemap with name name, uppercase characters upper and lowercase characters lower

[Source]

    # File lib/rbot/irc.rb, line 74
74:     def initialize(name, upper, lower)
75:       @key = name.to_sym
76:       raise "Casemap #{name.inspect} already exists!" if @@casemaps.has_key?(@key)
77:       @@casemaps[@key] = {
78:         :upper => upper,
79:         :lower => lower,
80:         :casemap => self
81:       }
82:     end

Public Instance methods

Two Casemaps are equal if they have the same upper and lower ranges

[Source]

     # File lib/rbot/irc.rb, line 122
122:     def ==(arg)
123:       other = arg.to_irc_casemap
124:       return self.upper == other.upper && self.lower == other.lower
125:     end

A Casemap is represented by its lower/upper mappings

[Source]

     # File lib/rbot/irc.rb, line 110
110:     def inspect
111:       self.__to_s__[0..-2] + " #{upper.inspect} ~(#{self})~ #{lower.inspect}>"
112:     end

Retrieve the ‘lowercase characters’ of this Casemap

[Source]

     # File lib/rbot/irc.rb, line 98
 98:     def lower
 99:       @@casemaps[@key][:lower]
100:     end

Give a warning if arg and self are not the same Casemap

[Source]

     # File lib/rbot/irc.rb, line 129
129:     def must_be(arg)
130:       other = arg.to_irc_casemap
131:       if self == other
132:         return true
133:       else
134:         warn "Casemap mismatch (#{self.inspect} != #{other.inspect})"
135:         return false
136:       end
137:     end

Return a Casemap based on the receiver

[Source]

     # File lib/rbot/irc.rb, line 104
104:     def to_irc_casemap
105:       self
106:     end

As a String we return our name

[Source]

     # File lib/rbot/irc.rb, line 116
116:     def to_s
117:       @key.to_s
118:     end

Retrieve the ‘uppercase characters’ of this Casemap

[Source]

    # File lib/rbot/irc.rb, line 92
92:     def upper
93:       @@casemaps[@key][:upper]
94:     end

[Validate]