Class: Overule::Inference

Inherits:
Object
  • Object
show all
Defined in:
lib/overule/inference.rb

Overview

Main class for executing business rules Takes a rule set and facts, evaluates conditions, and executes corresponding actions when conditions are met

Instance Method Summary collapse

Constructor Details

#initialize(rule, facts) ⇒ Inference

Returns a new instance of Inference.



8
9
10
11
# File 'lib/overule/inference.rb', line 8

def initialize(rule, facts)
  @rules = HashWithIndifferentAccess.new(rule)
  @ctx   = Context.new(facts)
end

Instance Method Details

#inferObject



13
14
15
16
17
18
# File 'lib/overule/inference.rb', line 13

def infer
  return unless @rules["when"] && evaluate(@rules["when"])

  action = Action.new(@rules["then"], @ctx)
  action.fire
end