FIX: json_schemer no longer allows nil keys (#22015)

This commit is contained in:
Daniel Waterworth 2023-06-08 15:12:47 -05:00 committed by GitHub
parent 51672562ec
commit 3d3e8c8fbd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -761,12 +761,13 @@ class Theme < ActiveRecord::Base
return if !keys
current_values = CSV.parse(setting_row.value, **{ col_sep: "|" }).flatten
new_values = []
current_values.each do |item|
parts = CSV.parse(item, **{ col_sep: "," }).flatten
props = parts.map.with_index { |p, idx| [keys[idx], p] }.to_h
new_values << props
end
new_values =
current_values.map do |item|
parts = CSV.parse(item, **{ col_sep: "," }).flatten
raise "Schema validation failed" if keys.size < parts.size
parts.zip(keys).map(&:reverse).to_h
end
schemer = JSONSchemer.schema(schema)
raise "Schema validation failed" if !schemer.valid?(new_values)