Проблема очень проста. Объект должен уведомлять о некоторых событиях, которые могут представлять интерес для наблюдателей.
Когда я сидел, чтобы проверить дизайн, который я приготовил сейчас в Ruby, просто чтобы проверить его. Я нахожусь в тупике относительно того, как реализовать события объекта. В .Net это будет однострочный....Net также выполняет проверку подписи метода обработчика и т.д. например.
// Object with events
public delegate void HandlerSignature(int a);
public event HandlerSignature MyEvent;
public event HandlerSignature AnotherCriticalEvent;
// Client
MyObject.MyEvent += new HandlerSignature(MyHandlerMethod); // MyHandlerMethod has same signature as delegate
Есть ли модуль EventDispatcher или что-то, что мне не хватает, что я могу привязать к классу Ruby? Надеюсь на ответ, который играет с принципом Ruby наименьшего удивления. Событием будет имя события плюс очередь объектов [observer, methodName], которые необходимо вызвать при возникновении события.