Ruby & Rules Engine - PullRequest
       16

Ruby & Rules Engine

15 голосов
/ 04 мая 2009

Я ищу простой способ, позволяющий пользователям определять набор правил для фильтрации объектов.

Например. пусть они определяют что-то вроде: «уведомить меня о бронировании, если дата бронирования <2009/04/30 И стоимость> 100,00»

Более или менее: я хотел бы иметь движок правил Ruby с настраиваемым DSL.

Есть ли библиотека, предлагающая это? Наткнулся на Ruleby, но пока не поддерживает пользовательский DSL.

Какой лучший помощник для этого?

Ответы [ 3 ]

5 голосов
/ 17 июля 2012

Посмотрите на камень wongi-engine . Это новый механизм правил, основанный на алгоритме Rete, который в последнее время привлекает немало внимания.

2 голосов
/ 05 мая 2009

Взгляните на Верх дерева . Вы можете определить свой DSL как грамматику выражения синтаксического анализа, а затем проанализировать ее, чтобы создать свои правила в любом формате, который вам нравится.

1 голос
/ 05 мая 2009

Я не знаю точно, как и на каких объектах должны оцениваться эти правила, но если бы это были модели ActiveRecord, возможно, Ambition был бы подходящим вариантом. Это позволяет вам писать условия в ruby, что-то вроде:

User.select { |m| m.name == 'jon' && m.age == 21 }

Это преобразуется в SQL, и вы получите всех пользователей, удовлетворяющих заданным критериям

...