Если вы уверены, что механизм правил - это то, что вам нужно, вам нужно будет найти тот, который вы можете использовать в Ruby. Быстрый поиск в Google вывел Rools (http://rools.rubyforge.org/) и Ruby Rules (http://xircles.codehaus.org/projects/ruby-rules).), хотя я не уверен в статусе любого из проектов, хотя. Использование JRuby с Drools может быть вашим лучшим выбором, но опять же, я Java-разработчик и большой адвокат Drools.:)
Не зная всех деталей, сложно сказать, как это должно быть реализовано. Это также зависит от того, как вы хотите, чтобы правила были обновлены. Один из подходов состоит в том, чтобы написать набор правил, подобный следующему: «если магазин существует с более чем 50 продавцами, и его вес не обновлен, чтобы отразить это, то обновите вес магазина». Однако, каким-то образом вы можете сравнить это с жестким кодированием.
Лучшим подходом может быть создание объектов Weight с критериями, которые должны соблюдаться для применения веса. Затем вы могли бы написать одно правило, которое соответствует и весам, и магазинам: «если существует магазин, который соответствует критериям веса, и у магазина еще нет этого веса, то добавьте вес в магазин». Тогда деловые люди могли бы просто создавать и обновлять весовые коэффициенты, возможно, в веб-интерфейсе базы данных, вместо того, чтобы поддерживать правила.