Sha256: 522a4b2a17896ed7719893338911c99e1ba8503b0a00cab9967e3f69e8939c2b

Contents?: true

Size: 896 Bytes

Versions: 4

Compression:

Stored size: 896 Bytes

Contents

# encoding: utf-8

module Attestor

  module Policy

    # Negation of a single policy
    #
    # The policy is valid if its only branch is invalid
    #
    # @example (see #validate)
    #
    # @api private
    class Not < Node

      # @!scope class
      # @!method new(policy)
      # Creates the policy negation
      #
      # @param [Array<Policy::Base>] policy
      #
      # @return [Policy::Base::Node]

      # @private
      def initialize(_)
        super
      end

      # Checks whether every policy is valid
      #
      # @example
      #   policy.valid? # => true
      #
      #   composition = Attestor::Policy::Not.new(policy)
      #   composition.validate
      #   # => Policy::InvalidError
      #
      # @return [undefined]
      def validate
        return unless any_valid?
        super
      end

    end # class And

  end # module Base

end # module Policy

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
attestor-0.3.0 lib/attestor/policy/not.rb
attestor-0.2.0 lib/attestor/policy/not.rb
attestor-0.1.0 lib/attestor/policy/not.rb
attestor-0.0.1 lib/attestor/policy/not.rb