Skip to content

Commit fed77f3

Browse files
committed
fix resolution of fragments where part of the path is an array, which can't be instantiated as a JSON::Schema
1 parent 3ce3459 commit fed77f3

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

lib/json-schema/validator.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,19 @@ def schema_from_fragment(base_schema, fragment)
9090
if !base_schema.has_key?(f)
9191
raise JSON::Schema::SchemaError.new("Invalid fragment resolution for :fragment option")
9292
end
93-
base_schema = JSON::Schema.new(base_schema[f],schema_uri,@options[:version])
93+
base_schema = base_schema[f]
9494
elsif base_schema.is_a?(Array)
9595
if base_schema[f.to_i].nil?
9696
raise JSON::Schema::SchemaError.new("Invalid fragment resolution for :fragment option")
9797
end
98-
base_schema = JSON::Schema.new(base_schema[f.to_i],schema_uri,@options[:version])
98+
base_schema = base_schema[f.to_i]
9999
else
100100
raise JSON::Schema::SchemaError.new("Invalid schema encountered when resolving :fragment option")
101101
end
102102
end
103+
unless base_schema.is_a?(JSON::Schema)
104+
base_schema = JSON::Schema.new(base_schema,schema_uri,@options[:version])
105+
end
103106

104107
if @options[:list]
105108
base_schema.to_array_schema

0 commit comments

Comments
 (0)