Sha256: 3791d4216cd55a3f923788ccf3a2193bdf709f51ce9c7d6cbac8c5a79e8c91a7
Contents?: true
Size: 677 Bytes
Versions: 3
Compression:
Stored size: 677 Bytes
Contents
require 'dry/types/decorator' module Dry module Types class Safe include Dry::Equalizer(:type, :options) include Decorator include Builder def call(input) result = try(input) if result.respond_to?(:input) result.input else input end end alias_method :[], :call def try(input, &block) type.try(input, &block) rescue TypeError, ArgumentError => e result = failure(input, e.message) block ? yield(result) : result end private def decorate?(response) super || response.kind_of?(Constructor) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dry-types-0.9.2 | lib/dry/types/safe.rb |
dry-types-0.9.1 | lib/dry/types/safe.rb |
dry-types-0.9.0 | lib/dry/types/safe.rb |