lib/utils.rb in jekyll-ramler-0.0.5 vs lib/utils.rb in jekyll-ramler-0.0.6

- old
+ new

@@ -40,11 +40,11 @@ obj.each { |k, v| obj[k] = insert_schemas(v)} if obj.include?('body') if obj['body'].fetch('application/x-www-form-urlencoded', {}).include?('formParameters') - if obj['body'].include?('application/json') && !(obj['body']['application/json'].include?('schema')) + if insert_json_schema?(obj) insert_json_schema(obj, generate_json_schema(obj)) end end end end @@ -52,10 +52,11 @@ obj end # Inserts provided JSON Schema into obj['body']['application/json']['schema'] def insert_json_schema(obj, schema) + obj['body']['application/json'] = {} if obj['body']['application/json'].nil? obj['body']['application/json']['schema'] = schema end # Creates JSON Schema - as a string - based on obj['body']['application/x-www-form-urlencoded']['formParameters'] def generate_json_schema(obj) @@ -85,9 +86,16 @@ end end schema_hash['required'] = required_properties if not required_properties.empty? JSON.pretty_generate(schema_hash) + end + + def insert_json_schema?(obj) + return false if !obj['body'].include?('application/json') + json_hash = obj['body']['application/json'] + json_hash = {} if json_hash.nil? + !(json_hash.include?('schema')) end end class JsonSchemaCompiler def compile(obj, obj_name=nil)