lib/json-schema/validator.rb in json-schema-2.1.4 vs lib/json-schema/validator.rb in json-schema-2.1.5
- old
+ new
@@ -3,10 +3,11 @@
require 'pathname'
require 'bigdecimal'
require 'digest/sha1'
require 'date'
require 'thread'
+require 'yaml'
module JSON
class Schema
class ValidationError < StandardError
@@ -334,10 +335,19 @@
items.each_with_index do |item,i|
handle_schema(parent_schema, item)
end
end
+ # Convert enum to a hash
+ if parent_schema.schema["enum"] && parent_schema.schema["enum"].is_a?(Array)
+ enum_hash = {}
+ parent_schema.schema["enum"].each do |item|
+ enum_hash[item] = true
+ end
+ parent_schema.schema["enum"] = enum_hash
+ end
+
# Each of these might be schemas
["additionalProperties", "additionalItems", "dependencies", "extends"].each do |key|
if parent_schema.schema[key].is_a?(Hash)
handle_schema(parent_schema, parent_schema.schema[key])
end
@@ -525,10 +535,12 @@
end
if @@json_backend == 'yajl'
@@serializer = lambda{|o| Yajl::Encoder.encode(o) }
else
- @@serializer = lambda{|o| Marshal.dump(o) }
+ @@serializer = lambda{|o|
+ YAML.dump(o)
+ }
end
end
end
private