class Typed::Builder::ArrayType

Attributes

base_type[R]
element_type[R]

Public Class Methods

new(element_type) click to toggle source
# File lib/typed/builder.rb, line 118
def initialize(element_type)
    @element_type = element_type
end

Public Instance Methods

process(value) click to toggle source
# 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