Class: DecisionTable::Ruleset

Inherits:
Object
  • Object
show all
Defined in:
lib/decision_table/ruleset.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ Ruleset

Returns a new instance of Ruleset.



6
7
8
9
10
11
12
13
# File 'lib/decision_table/ruleset.rb', line 6

def initialize(rules)
  if rules[0].is_a?(Rule)
    @rules = rules
  else
    keys = rules.shift
    @rules = rules.map { |values| Rule.new(keys, values) }
  end
end

Instance Attribute Details

#rulesObject

Returns the value of attribute rules.



5
6
7
# File 'lib/decision_table/ruleset.rb', line 5

def rules
  @rules
end

Class Method Details

.parse_csv(csv) ⇒ Object



20
21
22
23
# File 'lib/decision_table/ruleset.rb', line 20

def self.parse_csv(csv)
  data = CSV.parse(csv)
  Ruleset.new(data)
end

Instance Method Details

#evaluate(candidate) ⇒ Object



15
16
17
18
# File 'lib/decision_table/ruleset.rb', line 15

def evaluate(candidate)
  rule = rules.detect { |rule| rule.applies?(candidate) }
  rule.result if rule
end