В ином случае вызывается метод send() объекта пользователя для передачи сообщения о событии private_msg непосредственно этому пользователю. Таковым сообщением может послужит, например, инструкция по созданию интернет-магазина или другой полезной информацией.
Данный метод позволяет воспользоваться тем, что объекты пользователей вызывают метод nickname () автоматически при интерпретации строк, в которых содержится соответствующая переменная. Это происходит в результате перегрузки оператора двойных кавычек в начале модуля.
Строки 102-111. Получение списка пользователей, подключенных к текущему каналу. Метод list_users() вырабатывает и передает клиенту ряд сообщений о событиях user_item. Каждое сообщение содержит информацию о пользователях, подключенных к текущему каналу (включая самого пользователя, приславшего запрос).
Выполнение метода начинается с выборки информации о текущем канале. Если таковой не определен (в связи с тем, что пользователь не подключился ни к одному каналу), метод отправляет сообщение о событии error. В ином случае он получает информацию обо всех пользователях текущего канала путем вызова метода users () этого канала и передает сообщение о событии user_item, состоящее из псевдонима пользователя, значения продолжительности времени, в течение которого пользователь был зарегистрирован в системе (в секундах), и разделенного пробелами списка каналов, абонентом которых является пользователь.
Как и в классе пользователя, в классе ChatObjects::Channel выполнена перегрузка оператора двойных кавычек с тем, чтобы во время интерпретации переменной с обозначением канала, указанной в строке, которая заключена в двойные кавычки, вызывался метод title () данного объекта. Это позволяет использовать ссылку на объект непосредственно в данных, передаваемых функции send().