Sha256: 49bd05f5e5d486a1283890ae43fb8966e9ffcdfdde6792c36d4d9671c6d21c76
Contents?: true
Size: 694 Bytes
Versions: 3
Compression:
Stored size: 694 Bytes
Contents
module Dry module Types class Array < Definition class Member < Array attr_reader :member def initialize(primitive, options = {}) @member = options.fetch(:member) super end def call(input, meth = :call) input.map { |el| member.__send__(meth, el) } end alias_method :[], :call def try(input, &block) result = call(input, :try) if result.all?(&:success?) success(result.map(&:input)) else failure = failure(input, result.select(&:failure?)) block ? yield(failure) : failure end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dry-types-0.7.2 | lib/dry/types/array/member.rb |
dry-types-0.7.1 | lib/dry/types/array/member.rb |
dry-types-0.7.0 | lib/dry/types/array/member.rb |