Sha256: 32ba96849ef401bb622af17d03cd93b7339c54c76c1e493c3b8ff7c23e6fa88f
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
module Fitting class Cover class JSONSchemaOneOf def initialize(json_schema) @json_schema = json_schema @combinations = [] end def combi inception(@json_schema, @combinations).each do |combination| combination[0] = @json_schema.merge(combination[0]) combination[1] = ['one_of', combination[1]] end end def inception(json_schema, combinations) json_schema.each do |key, value| if key == 'oneOf' one_of = json_schema.delete('oneOf') one_of.each_index do |index| combinations.push([json_schema.merge('oneOf' => [one_of[index]]), "oneOf.#{index}"]) end elsif value.is_a?(Hash) inception(value, combinations) combinations.each do |combination| combination[0] = { key => combination[0]} combination[1] = "#{key}.#{combination[1]}" end end end combinations end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fitting-2.13.0 | lib/fitting/cover/json_schema_one_of.rb |
fitting-2.12.1 | lib/fitting/cover/json_schema_one_of.rb |