Class: Dry::Data::Type::Array

Inherits:
Dry::Data::Type show all
Defined in:
lib/dry/data/type/array.rb

Instance Attribute Summary

Attributes inherited from Dry::Data::Type

#constructor, #options, #primitive

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Dry::Data::Type

[], #call, #initialize, #name, #try, #valid?

Methods included from Dry::Data::TypeBuilder

#constrained, #default, #enum, #optional, #safe, #|

Constructor Details

This class inherits a constructor from Dry::Data::Type

Class Method Details

.constructor(array_constructor, member_constructor, input) ⇒ Object



5
6
7
# File 'lib/dry/data/type/array.rb', line 5

def self.constructor(array_constructor, member_constructor, input)
  array_constructor[input].map { |value| member_constructor[value] }
end

Instance Method Details

#member(type) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/dry/data/type/array.rb', line 9

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

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

  self.class.new(array_constructor, primitive: primitive, member: member_constructor)
end