Sha256: 719571eb657320a3f20ae14a8e2b7afc444fce002167dabaa53ec75ed0d3675c

Contents?: true

Size: 712 Bytes

Versions: 2

Compression:

Stored size: 712 Bytes

Contents

# encoding: utf-8

module Attestor

  module Policy

    # OR-concatenation of several policies (branches)
    #
    # The policy is valid unless all its branches are invalid.
    #
    # @example (see #validate)
    #
    # @api private
    class Or < Node

      # Checks whether any policy is valid
      #
      # @example
      #   first.valid?  # => false
      #   second.valid? # => false
      #
      #   composition = Attestor::Policy::Or.new(first, second)
      #   composition.validate
      #   # => Policy::InvalidError
      #
      # @return [undefined]
      def validate
        return if detect(&:valid?)
        super
      end

    end # class Or

  end # module Base

end # module Policy

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
attestor-1.0.0 lib/attestor/policy/or.rb
attestor-0.4.0 lib/attestor/policy/or.rb