Class: Attestor::Policy::Xor Private

Inherits:
Node
  • Object
show all
Defined in:
lib/attestor/policy/xor.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

XOR-concatenation of several policies (branches)

The policy is valid when it has both valid and invalid branches.

Examples:

first.valid?  # => true
second.valid? # => true

composition = Attestor::Policy::Xor.new(first, second)
composition.validate
# => Policy::InvalidError

Instance Method Summary collapse

Methods inherited from Node

initialize, new, validate

Methods included from Attestor::Policy

#and, included, #invalid?, new, #not, #or, #valid?, #xor

Methods included from Validations::ClassMethods

#follow_policy, #follow_validator, #validators

Methods included from Factory

#and, #not, #or, #xor

Methods included from Validations

included, #invalid

Instance Method Details

#validateundefined

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Checks whether both valid and invalid branches are present

Examples:

first.valid?  # => true
second.valid? # => true

composition = Attestor::Policy::Xor.new(first, second)
composition.validate
# => Policy::InvalidError


27
28
29
30
# File 'lib/attestor/policy/xor.rb', line 27

def validate
  return if any_valid? && any_invalid?
  super
end