Я ищу структуру данных или шаблон проектирования для работы с рельсами и активной записью, чтобы обеспечить возможность создания настраиваемых событий и триггеров событий на основе событий реального времени.Триггеры событий Ruby
Хотя это не является конечным использованием для такого рода систем, следующий пример, который я считаю, демонстрирует то, что я пытаюсь сделать. Подобно системе мониторинга журналов, такой как splunk, по сути, я пытаюсь создать систему, в которой я могу взять некоторый атрибут от объекта, а затем сравнить его с желаемым значением и выполнить действие, если оценка истинна.
Есть ли библиотека, чтобы сделать это или что-то нужно будет выкачать с нуля. То, как я думал об этом, было бы похоже на следующее:
У меня был бы Актер (не в традиционном смысле параллелизма), в котором бы были атрибуты, с которыми я хочу сравнить. Тогда у меня будет модель Trigger, которая будет иметь указатель на actor_id, атрибут (количество IE), компаратор (<, < =, ==,> =,>), значение и action_id. Action_id будет указывать на объект с помощью метода выполнения, который просто разместил бы код, который должен запускаться при запуске триггера.
Таким образом, в конце концов, триггер будет оценивать что-то вроде:
action.perform if actor.send(attribute) comparator value
Другой вариант, возможно, более стандартной, кажется, развивать в DSL (IE FQL для Facebook). Будет ли это лучшим и гибким подходом.
Это что-то, что может обрабатывать библиотека, или если нет, это достойная структура для системы, подобной той, которую я предлагаю?
EDIT: Похоже, что DSL может быть самым гибким способом. Tutorials for writing DSL in Ruby
Интересно, что я действительно не знал, что вы могли бы это сделать, хотя я полагаю, что это имеет смысл, что вы можете. Благодаря! – ajorgensen