Class: Typed::Builder::ArrayType

Inherits:
Object
  • Object
show all
Includes:
BaseType
Defined in:
lib/typed/builder.rb

Instance Method Summary collapse

Methods included from BaseType

#call, #constrained, #constructor, #default, #enum, #instance, #missable, #nullable, #|

Constructor Details

#initialize(element_type) ⇒ ArrayType

Returns a new instance of ArrayType.



118
119
120
# File 'lib/typed/builder.rb', line 118

def initialize(element_type)
    @element_type = element_type
end

Instance Method Details

#process(value) ⇒ Object



122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/typed/builder.rb', line 122

def process(value)
    return Result.failure { "Invalid collection: #{value.inspect}" } unless value.respond_to?(:each)

    new_value = []

    value.each do |element|
        element_result = element_type.process(element)
        return element_result unless element_result.ok

        new_value << element_result.value
    end

    Result.success(new_value)
end