I have a need to build an app (Ruby) that allows the user to select one or more patterns and in case those patterns are matched to proceed and complete a set of actions.<p>While doing my research I've discovered the new (to me) field of rules based systems and have spent some time reading about it and it seems exactly the kind of functionality I need.<p>The app will be integrated with different web services and would allow rules like these one:<p>When Highrise contact is added
and Zendesk ticket is created
do add email to database<p>I had two ideas to build this. The first is to build some kind os DSL to be able to specify the rule conditions and build them on the fly with the user input.<p>The second one is to build some rule classes each one having a pattern/matcher and action methods. The pattern would evaluate the expression and return true or false and the action would be executed if the match is positive.<p>The rules will then need to be persisted and then evaluated periodically.<p>Can anyone shed some light on this design or point somewhere where I can get more information on this?<p>Thanks