module Irc

This would be a good idea if it was failproof, but the truth is that other methods can indirectly modify the hash. sigh

class AuthNotifyingHash < Hash

%w(clear default= delete delete_if replace invert
   merge! update rehash reject! replace shift []= store).each { |m|
  class_eval {
    define_method(m) { |*a|
      r = super(*a)
      Irc::Bot::Auth.manager.set_changed
      r
    }
  }
}

end

The move of everything rbot-related to the Irc::Bot::* namespace from Irc::* would cause off-repo plugins to fail if they register any configuration key, so we have to handle this case.

Author

Giuseppe Bilotta (giuseppe.bilotta@gmail.com)

Author

Giuseppe “Oblomov” Bilotta <giuseppe.bilotta@gmail.com>

Author

Giuseppe “Oblomov” Bilotta <giuseppe.bilotta@gmail.com>

This file collects methods to handle ‘stream filters’, a generic mechanism to transform text+attributes into other text+attributes

Author

Giuseppe “Oblomov” Bilotta <giuseppe.bilotta@gmail.com>

These routines read a string and return the number of seconds they represent.

The Irc module is used to keep all IRC-related classes in the same namespace

This module takes care of language handling for rbot: setting the core.language value, loading the appropriate .lang file etc.

This module defines the Irc::Client class, a class that can handle and dispatch messages based on RFC 2821 (Internet Relay Chat: Client Protocol)