Class: Fitting::Cover::JSONSchemaOneOf
- Inherits:
-
Object
- Object
- Fitting::Cover::JSONSchemaOneOf
- Defined in:
- lib/fitting/cover/json_schema_one_of.rb
Instance Attribute Summary collapse
-
#combinations ⇒ Object
readonly
Returns the value of attribute combinations.
-
#json_schema ⇒ Object
readonly
Returns the value of attribute json_schema.
Instance Method Summary collapse
- #combi ⇒ Object
- #inception(json_schema, combinations) ⇒ Object
-
#initialize(json_schema) ⇒ JSONSchemaOneOf
constructor
A new instance of JSONSchemaOneOf.
Constructor Details
#initialize(json_schema) ⇒ JSONSchemaOneOf
Returns a new instance of JSONSchemaOneOf.
6 7 8 9 |
# File 'lib/fitting/cover/json_schema_one_of.rb', line 6 def initialize(json_schema) @json_schema = json_schema @combinations = [] end |
Instance Attribute Details
#combinations ⇒ Object (readonly)
Returns the value of attribute combinations.
4 5 6 |
# File 'lib/fitting/cover/json_schema_one_of.rb', line 4 def combinations @combinations end |
#json_schema ⇒ Object (readonly)
Returns the value of attribute json_schema.
4 5 6 |
# File 'lib/fitting/cover/json_schema_one_of.rb', line 4 def json_schema @json_schema end |
Instance Method Details
#combi ⇒ Object
11 12 13 14 15 16 |
# File 'lib/fitting/cover/json_schema_one_of.rb', line 11 def combi inception(json_schema, combinations).each do |combination| combination[0] = combination[0] combination[1] = ['one_of', combination[1]] end end |
#inception(json_schema, combinations) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/fitting/cover/json_schema_one_of.rb', line 18 def inception(json_schema, combinations) json_schema.each do |key, value| if key == 'oneOf' schema = json_schema.dup one_of = schema.delete('oneOf') one_of.each_index do |index| schema_new = json_schema.dup schema_new.delete('oneOf') combinations.push([schema_new.merge(one_of[index]), "oneOf.#{index}"]) end elsif value.is_a?(Hash) com = inception(value, []) com.each do |combination| combination[0] = { key => value.merge(combination[0]) } combination[1] = "#{key}.#{combination[1]}" end combinations += com end end combinations end |