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)