Class: RegoValidate::PolicyEvaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/rego/cli/evaluation.rb

Overview

Compiles and evaluates policies with a resolved query.

Instance Method Summary collapse

Constructor Details

#initialize(policy_source, input, query, profiler: nil) ⇒ PolicyEvaluator

Create a policy evaluator.

Parameters:

  • policy_source (String)
  • input (Object)
  • query (String, nil)


14
15
16
17
18
19
# File 'lib/ruby/rego/cli/evaluation.rb', line 14

def initialize(policy_source, input, query, profiler: nil)
  @policy_source = policy_source
  @input = input
  @query = query
  @profiler = profiler
end

Instance Method Details

#evaluateEvaluationResult

Compile and evaluate the policy using the resolved query.

Returns:



24
25
26
27
28
29
30
31
32
# File 'lib/ruby/rego/cli/evaluation.rb', line 24

def evaluate
  compiled_module = measure("compile") { Ruby::Rego.compile(policy_source) }
  query_path = resolve_query(compiled_module)
  return EvaluationResult.new(error_message: "No default validation rule found. Provide --query.") unless query_path

  build_evaluation(compiled_module, query_path)
ensure
  profiler&.report
end