in lib/openai/internal/type/hash_of.rb [62:103]
def hash = [self.class, item_type].hash
def coerce(value, state:)
exactness = state.fetch(:exactness)
unless value.is_a?(Hash)
exactness[:no] += 1
return value
end
target = item_type
exactness[:yes] += 1
value
.to_h do |key, val|
k = key.is_a?(String) ? key.to_sym : key
v =
case [nilable?, val]
in [true, nil]
exactness[:yes] += 1
nil
else
OpenAI::Internal::Type::Converter.coerce(target, val, state: state)
end
exactness[:no] += 1 unless k.is_a?(Symbol)
[k, v]
end
end