class Strategize::PolicyEvaluator

Public Class Methods

new(rule_evaluator) click to toggle source
# File lib/strategize/evaluators/policy_evaluator.rb, line 3
def initialize(rule_evaluator)
  @rule_evaluator = rule_evaluator
end

Public Instance Methods

evaluate(*policies, subject) click to toggle source
# File lib/strategize/evaluators/policy_evaluator.rb, line 7
def evaluate(*policies, subject)
  policies.flatten!
  results = policies.map do |policy|
    rules = policy.rule_group.rules
    rule_digest = @rule_evaluator.evaluate(subject, rules)
    PolicyEvaluation.new(policy, rule_digest)
  end
  PolicyEvaluationDigest.new(results, subject)
end