Compliance SourceCompliancePolicy

class Policy

Represents a policy for checking compliance.

Nested

Definitions

def self.default(loader = Loader.default)

Load the policy from a given loader.

Implementation

def self.default(loader = Loader.default)
	self.new.tap do |policy|
		loader.documents.each do |document|
			policy.add(document, loader)
		end
	end
end

def check

Check the document against a given policy.

Implementation

def check
	return to_enum(:check) unless block_given?
	
	@requirements.each do |id, requirement|
		attestations = @attestations[id]
		
		satisfied = []
		unsatisfied = []
		
		attestations&.each do |attestation|
			if self.satisfies?(requirement, attestation)
				satisfied << attestation
			else
				unsatisfied << attestation
			end
		end
		
		yield requirement, satisfied, unsatisfied
	end
end