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