class Dry::Schema::Key::Array

@api private
A specialized key type which handles nested arrays

def coercible(&coercer)

Other tags:
    Api: - private
def coercible(&coercer)
  new(coercer: coercer, member: member.coercible(&coercer))
end

def dump

Other tags:
    Api: - private
def dump
  [name, member.dump]
end

def initialize(id, member:, **opts)

Other tags:
    Api: - private
def initialize(id, member:, **opts)
  super(id, **opts)
  @member = member
end

def stringified

Other tags:
    Api: - private
def stringified
  new(name: name.to_s, member: member.stringified)
end

def to_dot_notation

Other tags:
    Api: - private
def to_dot_notation
  [:"#{name}[]"].product(member.to_dot_notation).map { |el| el.join(DOT) }
end

def write(source, target)

Other tags:
    Api: - private
def write(source, target)
  read(source) { |value|
    target[coerced_name] =
      if value.is_a?(::Array)
        value.map { |el| el.is_a?(::Hash) ? member.write(el) : el }
      else
        value
      end
  }
end