Sha256: e9d83eba89dfbad583855b3d497a7e5a4bf46654e26f0ae11930234eabc39514

Contents?: true

Size: 874 Bytes

Versions: 1

Compression:

Stored size: 874 Bytes

Contents

# encoding: utf-8

module Policy

  module Base

    # 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.
    #
    # @example (see #valid?)
    #
    # @api private
    class And < Node

      # Checks whether every policy is valid
      #
      # Mutates the policy by adding {#errors} from its invalid part.
      #
      # @example
      #   first.valid?  # => true
      #   second.valid? # => false
      #
      #   composition = Policy::Base::And.new(first, second)
      #   composition.valid?                  # => false
      #   composition.errors == second.errors # => true
      #
      # @return [Boolean]
      def valid?
        super { return true unless any_invalid? }
      end

    end # class And

  end # module Base

end # module Policy

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
policy-2.0.0 lib/policy/base/and.rb