Class: Fitting::Cover::JSONSchemaOneOf

Inherits:
Object
  • Object
show all
Defined in:
lib/fitting/cover/json_schema_one_of.rb

Instance Method Summary collapse

Constructor Details

#initialize(json_schema) ⇒ JSONSchemaOneOf

Returns a new instance of JSONSchemaOneOf.



4
5
6
# File 'lib/fitting/cover/json_schema_one_of.rb', line 4

def initialize(json_schema)
  @json_schema = json_schema
end

Instance Method Details

#combi ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/fitting/cover/json_schema_one_of.rb', line 8

def combi
  @combinations = []

  return @combinations unless @json_schema['oneOf'] || @json_schema['allOf']

  if @json_schema['oneOf']
    one_of = @json_schema.delete("oneOf")
    one_of.each_index do |index|
      @combinations.push([@json_schema.merge(one_of[index]), ['one_of', "properties.#{index}"]])
    end
  elsif @json_schema['allOf']
    all_of = @json_schema.delete("allOf")
    one_of = all_of[0].delete("oneOf")
    one_of.each_index do |index|
      @combinations.push([@json_schema.merge(one_of[index]), ['one_of', "properties.#{index}"]])
    end
  end

  @combinations
end