Domanda

Sto cercando un modo semplice per consentire agli utenti di definire un insieme di regole per filtrare gli oggetti.

Eg. lascia che definiscano qualcosa come " avvisami di una prenotazione se la data di prenotazione < 30/04/2009 E valore > 100,00 "

Più o meno: mi piacerebbe avere un motore di regole Ruby con DSL personalizzato.

C'è una biblioteca che lo offre? È arrivato su Ruleby, ma non supporta ancora DSL personalizzato.

Qual è l'approccio migliore per farlo?

È stato utile?

Soluzione

Dai un'occhiata a Treetop . Puoi definire il tuo DSL come una grammatica di espressione di analisi e quindi analizzarlo per creare le tue regole in qualunque formato ti piaccia.

Altri suggerimenti

Dai un'occhiata alla wongi-engine è un nuovo motore di regole basato sul Algoritmo di Rete che sta attirando molta attenzione ultimamente.

Non so esattamente come e su quali oggetti queste regole debbano essere valutate, ma se si tratta di modelli ActiveRecord forse L'ambizione sarebbe la strada da percorrere. Ti consente di scrivere condizioni in rubino, qualcosa del tipo:

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

Questo viene convertito in SQL e otterrai tutti gli utenti che soddisfano i criteri indicati

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top