@@ -24,20 +24,39 @@ Or install it yourself as:
2424
2525## Usage
2626
27- Require everything
27+ Single outcome:
2828
2929``` ruby
30- require ' rules_engine'
31- @name = options.fetch(:name )
32- @reference = options.fetch(:reference )
33- @parameter = options.fetch(:parameter )
34-
35- true_outcome = RulesEngine ::Outcome .new (reference: ' some category' , name: ' true outcome' ,parameter: ' some parameter' )
36- false_outcome = RulesEngine ::Outcome .new (reference: ' some category' , ' name:false outcome' , parameter: ' another parameter' )
37- root_rule = RulesEngine ::Condition .new (name: ' condition name' , condition: ' 2 > 1' , when_true: true_outcome, when_false: false_outcome)
38- set = RulesEngine ::Set .new (root: root_rule, name: ' rule set name' )
39- walker = RulesEngine ::Walker .new (set: set, object: some_object)
30+ true_outcome = RulesEngine ::Outcome .new (name: " Outcome 1" , values: " Outcome 1 Values" )
31+ false_outcome = RulesEngine ::Outcome .new (name: " Outcome 2" , values: " Outcome 2 Values" )
32+ root = RulesEngine ::Condition .new (name: " Root" , condition: " 2 > 1" , when_true: true_outcome, when_false: false_outcome)
33+ set = RulesEngine ::Set .new (name: " Single Outcome" , root: root)
34+ walker = RulesEngine ::Walker .new (set: set, event_logger: nil )
4035walker.walk
36+
37+ # Executing Rule Set Single Outcome
38+ # Evaluated condition 2 > 1, result is true (overridden: false)
39+ # => #<RulesEngine::Outcome:... @name="Outcome 1", @values="Outcome 1 Values">
40+ ```
41+
42+ Multiple outcomes:
43+
44+ ``` ruby
45+ outcome_1 = RulesEngine ::Outcome .new (name: " Outcome 1" , values: " Outcome 1 Values" )
46+ outcome_2 = RulesEngine ::Outcome .new (name: " Outcome 2" , values: " Outcome 2 Values" )
47+ outcome_3 = RulesEngine ::Outcome .new (name: " Outcome 3" , values: " Outcome 3 Values" )
48+ outcome_4 = RulesEngine ::Outcome .new (name: " Outcome 4" , values: " Outcome 4 Values" )
49+ condition_1 = RulesEngine ::Condition .new (name: " Condition 1" , condition: " 2 < 1" , when_true_outcome: outcome_3, when_false_outcome: outcome_4)
50+ root = RulesEngine ::Condition .new (name: " Root" , condition: " 2 > 1" , when_true_outcome: outcome_1, when_true_condition: condition_1, when_false_outcome: outcome_2, when_false_condition: condition_1)
51+ set = RulesEngine ::Set .new (name: " Multiple Outcomes" , root: root, multiple_outcomes: true )
52+ walker = RulesEngine ::Walker .new (set: set, event_logger: nil )
53+ walker.walk
54+
55+ # Executing Rule Set Multiple Outcomes
56+ # Evaluated condition 2 > 1, result is true (overridden: false)
57+ # Evaluated condition 2 < 1, result is false (overridden: false)
58+ # => [#<RulesEngine::Outcome:... @name="Outcome 1", @values="Outcome 1 Values">,
59+ # <RulesEngine::Outcome:... @name="Outcome 4", @values="Outcome 4 Values">]
4160```
4261
4362## Contributing
0 commit comments