Method: Fitting::Doc::JsonSchema#initialize

Defined in:
lib/fitting/doc/json_schema.rb

#initialize(json_schema, super_schema) ⇒ JsonSchema

Returns a new instance of JsonSchema.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/fitting/doc/json_schema.rb', line 16

def initialize(json_schema, super_schema)
  @super_schema = super_schema
  @logs = []
  @step_cover_size = 0
  @step_key = json_schema
  @next_steps = []
  @oneOf = false
  Fitting::Cover::JSONSchemaOneOf.new(json_schema).combi.each do |combination|
    @oneOf = true
    @next_steps.push(CombinationOneOf.new(combination[0], combination[1][0], combination[1][1], json_schema))
  end
  combinations = Fitting::Cover::JSONSchemaEnum.new(json_schema).combi
  if combinations.size > 1
    combinations.each do |comb|
      @next_steps.push(CombinationEnum.new(comb[0], comb[1][0], comb[1][1], json_schema))
    end
  end

  if json_schema['type'] != 'array'
    combinations = Fitting::Cover::JSONSchema.new(json_schema).combi
    combinations.each do |comb|
      @next_steps.push(CombinationOptional.new(comb[0], comb[1][0], comb[1][1], json_schema))
    end
  end
end