В Rails самые близкие, что я видел, к Сигналам Джанго Наблюдатели . Проблема с ними заключается в том, что они ограничены вызовом обратных вызовов для жестко закодированных событий, связанных с жизненным циклом модели.
Сигналы Django могут создаваться где угодно, запускаться где угодно и обрабатываться где угодно. Обратные вызовы жизненного цикла модели - это просто обычные сигналы, которые приходят встроенными и запускаются ORM.
Кто-нибудь знает аналогичное общее решение для Rails? Это может быть какая-то общая библиотека Ruby, не привязанная к Rails, что было бы еще лучше.
Редактировать: Обозреватель - самая близкая вещь, но это не то, что я ищу. Это решение один-ко-многим. Любой может слушать, но только исходный объект может публиковать сообщения. Я бы хотел что-то, где вы объявляете сигнал, и любой может его запустить, а также обработать. Кроме того, мне не нравится тот факт, что Ruby Observer указывает, что у обработчика есть метод #update. Я хотел бы иметь возможность передавать ссылку на любой метод с соответствующей подписью.
Я мог бы использовать Ruby Observer для реализации своего собственного такого брокера, но я пытаюсь узнать, сделал ли это кто-то уже.