Sha256: 86477c3db14d2794c145fe9646f5d87c4e4b28deac95ef219346ddcdcd0ba0f1
Contents?: true
Size: 1.35 KB
Versions: 2
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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-types-1.5.1 | lib/dry/types/type.rb |
dry-types-1.5.0 | lib/dry/types/type.rb |