json-schema 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/json-schema/validator.rb +6 -4
  2. metadata +3 -3
@@ -467,7 +467,7 @@ module JSON
467
467
  # Grab the parent schema from the schema list
468
468
  schema_key = temp_uri.to_s.split("#")[0]
469
469
  ref_schema = Validator.schemas[schema_key]
470
-
470
+
471
471
  if ref_schema
472
472
  # Perform fragment resolution to retrieve the appropriate level for the schema
473
473
  target_schema = ref_schema.schema
@@ -485,6 +485,8 @@ module JSON
485
485
  # We have the schema finally, build it and validate!
486
486
  schema = JSON::Schema.new(target_schema,temp_uri)
487
487
  validate_schema(schema, data, fragments)
488
+ else
489
+ raise ValidationError.new("The referenced schema '#{temp_uri.to_s}' cannot be found", fragments, current_schema)
488
490
  end
489
491
  end
490
492
 
@@ -525,8 +527,7 @@ module JSON
525
527
 
526
528
 
527
529
  # Build all schemas with IDs, mapping out the namespace
528
- def build_schemas(parent_schema)
529
-
530
+ def build_schemas(parent_schema)
530
531
  # Check for schemas in union types
531
532
  ["type", "disallow"].each do |key|
532
533
  if parent_schema.schema[key] && parent_schema.schema[key].is_a?(Array)
@@ -650,8 +651,9 @@ module JSON
650
651
  end
651
652
 
652
653
  if @options[:list]
653
- inter_json = {:type => "array", :items => schema.schema}.to_json
654
+ inter_json = {:type => "array", :items => { "$ref" => schema.uri.to_s }}.to_json
654
655
  wrapper_schema = JSON::Schema.new(JSON.parse(inter_json),URI.parse("file://#{Dir.pwd}/#{Digest::SHA1.hexdigest(inter_json)}"))
656
+ build_schemas(schema)
655
657
  schema = wrapper_schema
656
658
  end
657
659
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-schema
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 8
10
- version: 0.1.8
9
+ - 9
10
+ version: 0.1.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kenny Hoxworth