lib/prmd/schema.rb in prmd-0.3.1 vs lib/prmd/schema.rb in prmd-0.3.2
- old
+ new
@@ -54,29 +54,35 @@
$stderr.puts("Failed to dereference `#{key}`")
raise(error)
end
end
- def schema_example(schema)
- example = {}
+ def schema_value_example(value)
+ if value.has_key?('properties') # nested properties
+ return schema_example(value)
+ elsif value.has_key?('items') # array of objects
+ _, items = dereference(value['items'])
+ if value['items'].has_key?('example')
+ return [items['example']]
+ else
+ return [schema_example(items)]
+ end
+ else
+ return value['example']
+ end
+ end
+ def schema_example(schema)
if schema.has_key?('example')
- example.merge!(schema['example'])
+ schema['example']
elsif schema.has_key?('properties')
+ example = {}
schema['properties'].each do |key, value|
_, value = dereference(value)
- if value.has_key?('properties') # nested properties
- example[key] = {}
- value['properties'].each do |k,v|
- example[key][k] = dereference(v).last['example']
- end
- else
- example[key] = value['example']
- end
+ example[key] = schema_value_example(value)
end
+ example
end
-
- example
end
def schemata_example(schemata_id)
_, schema = dereference("#/definitions/#{schemata_id}")
@schemata_examples[schemata_id] ||= begin