Sha256: 3614e7542385bd7d3315027364d612d5531fa0d590c764f23e4b1382efcc0086

Contents?: true

Size: 715 Bytes

Versions: 3

Compression:

Stored size: 715 Bytes

Contents

# frozen_string_literal: true

module Dry
  module Types
    # A registry with predicate objects from `Dry::Logic::Predicates`
    #
    # @api private
    class PredicateRegistry
      # @api private
      attr_reader :predicates

      # @api private
      attr_reader :has_predicate

      KERNEL_RESPOND_TO = ::Kernel.instance_method(:respond_to?)
      private_constant(:KERNEL_RESPOND_TO)

      # @api private
      def initialize(predicates = Logic::Predicates)
        @predicates = predicates
      end

      # @api private
      def key?(name)
        KERNEL_RESPOND_TO.bind_call(@predicates, name)
      end

      # @api private
      def [](name)
        predicates[name]
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-types-1.7.2 lib/dry/types/predicate_registry.rb
dry-types-1.7.1 lib/dry/types/predicate_registry.rb
dry-types-1.7.0 lib/dry/types/predicate_registry.rb