Sha256: 0354adfddb475f652b04dd01917f4fcd9b096ea4b769e29d04171cf6146d7077
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
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) if ::UnboundMethod.method_defined?(:bind_call) # @api private def initialize(predicates = Logic::Predicates) @predicates = predicates end # @api private def key?(name) KERNEL_RESPOND_TO.bind_call(@predicates, name) end else # @api private def initialize(predicates = Logic::Predicates) @predicates = predicates @has_predicate = KERNEL_RESPOND_TO.bind(@predicates) end # @api private def key?(name) has_predicate.(name) end end # @api private def [](name) predicates[name] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-types-1.6.1 | lib/dry/types/predicate_registry.rb |
dry-types-1.6.0 | lib/dry/types/predicate_registry.rb |