Sha256: ec77f123fe8a68fb1595396ec51d16fb170ba5248a931a893371e38eb0033896
Contents?: true
Size: 1.35 KB
Versions: 11
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true require 'dry/core/deprecations' module Dry module Types # Common Type module denoting an object is a Type # # @api public module Type extend ::Dry::Core::Deprecations[:'dry-types'] deprecate(:safe, :lax) # Whether a value is a valid member of the type # # @return [Boolean] # # @api private def valid?(input = Undefined) call_safe(input) { return false } true end # Anything can be coerced matches alias_method :===, :valid? # Apply type to a value # # @overload call(input = Undefined) # Possibly unsafe coercion attempt. If a value doesn't # match the type, an exception will be raised. # # @param [Object] input # @return [Object] # # @overload call(input = Undefined) # When a block is passed, {#call} will never throw an exception on # failed coercion, instead it will call the block. # # @param [Object] input # @yieldparam [Object] output Partially coerced value # @return [Object] # # @api public def call(input = Undefined, &block) if block_given? call_safe(input, &block) else call_unsafe(input) end end alias_method :[], :call end end end
Version data entries
11 entries across 11 versions & 2 rubygems