json_schema 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1a21245deb4478d1114d452584d127d681691287
4
- data.tar.gz: c73611c6e500ecb1162e6ae7050a2d4e76e207b3
3
+ metadata.gz: 65fd96a4a0b25ccd0d3f5d3076006a469e9cd7fc
4
+ data.tar.gz: f07194f4d483ee87b1905937ba0b42b19753bb16
5
5
  SHA512:
6
- metadata.gz: bdba472b585f8625f2cf96eb9f179b5e9123bca8fe8640c1450148aee1ae2b2dacab80605879e485581374dfcdb40040889d758346c5834b33fd52ce6a85fed6
7
- data.tar.gz: a618f82b9e585fa7dfa2bf8f2e56ff73b7aa9aaea4729108989eafeedda615c579a6c03cd7354f672241c61aa7d7c2a14db1abed1521346b54a8408f4792a991
6
+ metadata.gz: 370459dbb6bfa029d8491777a3e68446f1e288d7c836c465a05d93a7703b369e06e66c0fc86f386a5fb463a532f285903b2f40f60d3443bc05dc8c3fa4facce2
7
+ data.tar.gz: debcdcce2c5102acda067fecc2e80fde6c78e8ee9182d3424429f93fef48ff8075348b72db9d07bea70f431326c6003e142a781cfaafb9691e7290262b12397e
@@ -261,6 +261,14 @@ module JsonSchema
261
261
  !clones.include?(self)
262
262
  end
263
263
 
264
+ def depth
265
+ if parent
266
+ parent.depth + 1
267
+ else
268
+ 0
269
+ end
270
+ end
271
+
264
272
  def pointer
265
273
  if parent
266
274
  parent.pointer + "/" + fragment
@@ -34,11 +34,9 @@ module JsonSchema
34
34
  private
35
35
 
36
36
  def first_visit(schema, errors, path)
37
- path_string = path.join("/")
38
- pointer = schema.pointer
39
- if !@visits.key?(pointer) || !@visits[pointer].key?(path_string)
40
- @visits[pointer] ||= {}
41
- @visits[pointer][path_string] = true
37
+ key = "#{schema.object_id}-#{schema.pointer}-#{path.join("/")}"
38
+ if !@visits.key?(key)
39
+ @visits[key] = true
42
40
  true
43
41
  else
44
42
  message = %{Validation loop detected.}
@@ -67,7 +65,6 @@ module JsonSchema
67
65
 
68
66
  def validate_data(schema, data, errors, path)
69
67
  valid = true
70
-
71
68
  # detect a validation loop
72
69
  if !first_visit(schema, errors, path)
73
70
  return false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandur