Class: Policy::Base::And Private

Inherits:
Node
  • Object
show all
Defined in:
lib/policy/base/and.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.

Composition of two policies

The policy is valid if both its parts are valid. #valid? method picks errors from its parts in case any is invalid.

Examples:

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

composition = Policy::Base::And.new(first, second)
composition.valid?                  # => false
composition.errors == second.errors # => true

Instance Attribute Summary

Attributes inherited from Node

#policies

Instance Method Summary collapse

Methods inherited from Node

initialize, #new

Methods included from Policy::Base

#and, included, #or, #xor

Instance Method Details

#valid?Boolean

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 every policy is valid

Mutates the policy by adding #errors from its invalid part.

Examples:

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

composition = Policy::Base::And.new(first, second)
composition.valid?                  # => false
composition.errors == second.errors # => true

Returns:

  • (Boolean)


30
31
32
# File 'lib/policy/base/and.rb', line 30

def valid?
  super { return true unless any_invalid? }
end