Sha256: 6fec079a4d5de598aa0dae18864ed6bd4049e1747adb049152374c98b66bd4c7

Contents?: true

Size: 590 Bytes

Versions: 1

Compression:

Stored size: 590 Bytes

Contents

module Dry
  module Types
    class Definition
      class Array < Definition
        def self.constructor(member_constructor, array)
          array.map { |value| member_constructor[value] }
        end

        def member(type)
          member_constructor =
            case type
            when String, Class then Types[type]
            else type
            end

          array_constructor = self.class
            .method(:constructor).to_proc.curry.(member_constructor)

          constructor(array_constructor, member: member_constructor)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dry-types-0.6.0 lib/dry/types/definition/array.rb