class Dry::Schema::Key::Array

A specialized key type which handles nested arrays

@api private

Attributes

member[R]

Public Class Methods

new(id, member:, **opts) click to toggle source

@api private

Calls superclass method Dry::Schema::Key::new
# File lib/dry/schema/key.rb, line 146
def initialize(id, member:, **opts)
  super(id, **opts)
  @member = member
end

Public Instance Methods

coercible(&coercer) click to toggle source

@api private

# File lib/dry/schema/key.rb, line 163
def coercible(&coercer)
  new(coercer: coercer, member: member.coercible(&coercer))
end
dump() click to toggle source

@api private

# File lib/dry/schema/key.rb, line 178
def dump
  [name, member.dump]
end
stringified() click to toggle source

@api private

# File lib/dry/schema/key.rb, line 168
def stringified
  new(name: name.to_s, member: member.stringified)
end
to_dot_notation() click to toggle source

@api private

# File lib/dry/schema/key.rb, line 173
def to_dot_notation
  [:"#{name}[]"].product(member.to_dot_notation).map { |el| el.join(DOT) }
end
write(source, target) click to toggle source

@api private

# File lib/dry/schema/key.rb, line 152
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