El problema es muy simple. Un objeto necesita notificar algunos eventos que pueden ser de interés para los observadores.¿Cuál es el equivalente de los eventos de .NET en Ruby?
Cuando me senté para validar un diseño que cociné ahora en Ruby solo para validarlo ... Me encuentro perplejo en cuanto a cómo implementar los eventos del objeto. En .Net, esto sería de una sola línea. .Net también hace la verificación de la firma del método del manejador, etc. p.ej.
// 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
¿Hay algún módulo de EventDispatcher o algo que me falta que pueda conectar a una clase de Ruby? Esperando una respuesta que coincida con el principio de menor sorpresa de Ruby. Un evento sería el nombre del evento más una cola de objetos [observer, methodName] que deben invocarse cuando se produce el evento.
No del todo ... Esto parece ser una implementación del Patrón de Observer Design. Lo que necesito es que el objeto Boiler exponga varios eventos como WaterExhausted, Started, etc. y clientes que se suscriben con sus controladores (no está limitado a un solo método de actualización) – Gishu