json_schemer 0.2.6 → 0.2.7

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.
Files changed (232) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +22 -0
  3. data/Gemfile.lock +1 -1
  4. data/JSON-Schema-Test-Suite/.gitignore +1 -0
  5. data/JSON-Schema-Test-Suite/.travis.yml +8 -0
  6. data/JSON-Schema-Test-Suite/LICENSE +19 -0
  7. data/JSON-Schema-Test-Suite/README.md +181 -0
  8. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +295 -0
  9. data/JSON-Schema-Test-Suite/index.js +45 -0
  10. data/JSON-Schema-Test-Suite/package.json +28 -0
  11. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +3 -0
  12. data/JSON-Schema-Test-Suite/remotes/integer.json +3 -0
  13. data/JSON-Schema-Test-Suite/remotes/name-defs.json +11 -0
  14. data/JSON-Schema-Test-Suite/remotes/name.json +11 -0
  15. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +8 -0
  16. data/JSON-Schema-Test-Suite/test-schema.json +59 -0
  17. data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalItems.json +87 -0
  18. data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalProperties.json +133 -0
  19. data/JSON-Schema-Test-Suite/tests/draft2019-08/allOf.json +218 -0
  20. data/JSON-Schema-Test-Suite/tests/draft2019-08/anyOf.json +189 -0
  21. data/JSON-Schema-Test-Suite/tests/draft2019-08/boolean_schema.json +104 -0
  22. data/JSON-Schema-Test-Suite/tests/draft2019-08/const.json +170 -0
  23. data/JSON-Schema-Test-Suite/tests/draft2019-08/contains.json +95 -0
  24. data/JSON-Schema-Test-Suite/tests/draft2019-08/default.json +49 -0
  25. data/JSON-Schema-Test-Suite/tests/draft2019-08/defs.json +24 -0
  26. data/JSON-Schema-Test-Suite/tests/draft2019-08/dependencies.json +268 -0
  27. data/JSON-Schema-Test-Suite/tests/draft2019-08/enum.json +179 -0
  28. data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMaximum.json +30 -0
  29. data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMinimum.json +30 -0
  30. data/JSON-Schema-Test-Suite/tests/draft2019-08/if-then-else.json +188 -0
  31. data/JSON-Schema-Test-Suite/tests/draft2019-08/items.json +250 -0
  32. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxItems.json +28 -0
  33. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxLength.json +33 -0
  34. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxProperties.json +38 -0
  35. data/JSON-Schema-Test-Suite/tests/draft2019-08/maximum.json +28 -0
  36. data/JSON-Schema-Test-Suite/tests/draft2019-08/minItems.json +28 -0
  37. data/JSON-Schema-Test-Suite/tests/draft2019-08/minLength.json +33 -0
  38. data/JSON-Schema-Test-Suite/tests/draft2019-08/minProperties.json +38 -0
  39. data/JSON-Schema-Test-Suite/tests/draft2019-08/minimum.json +59 -0
  40. data/JSON-Schema-Test-Suite/tests/draft2019-08/multipleOf.json +60 -0
  41. data/JSON-Schema-Test-Suite/tests/draft2019-08/not.json +117 -0
  42. data/JSON-Schema-Test-Suite/tests/draft2019-08/oneOf.json +206 -0
  43. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/bignum.json +105 -0
  44. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/content.json +77 -0
  45. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/ecmascript-regex.json +13 -0
  46. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date-time.json +53 -0
  47. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date.json +23 -0
  48. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/email.json +18 -0
  49. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/hostname.json +33 -0
  50. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-email.json +18 -0
  51. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-hostname.json +28 -0
  52. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv4.json +33 -0
  53. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv6.json +28 -0
  54. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri-reference.json +43 -0
  55. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri.json +53 -0
  56. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/json-pointer.json +168 -0
  57. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/regex.json +18 -0
  58. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/relative-json-pointer.json +33 -0
  59. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/time.json +23 -0
  60. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-reference.json +43 -0
  61. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-template.json +28 -0
  62. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri.json +103 -0
  63. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/zeroTerminatedFloats.json +15 -0
  64. data/JSON-Schema-Test-Suite/tests/draft2019-08/pattern.json +34 -0
  65. data/JSON-Schema-Test-Suite/tests/draft2019-08/patternProperties.json +151 -0
  66. data/JSON-Schema-Test-Suite/tests/draft2019-08/properties.json +167 -0
  67. data/JSON-Schema-Test-Suite/tests/draft2019-08/propertyNames.json +78 -0
  68. data/JSON-Schema-Test-Suite/tests/draft2019-08/ref.json +443 -0
  69. data/JSON-Schema-Test-Suite/tests/draft2019-08/refRemote.json +167 -0
  70. data/JSON-Schema-Test-Suite/tests/draft2019-08/required.json +105 -0
  71. data/JSON-Schema-Test-Suite/tests/draft2019-08/type.json +464 -0
  72. data/JSON-Schema-Test-Suite/tests/draft2019-08/uniqueItems.json +89 -0
  73. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +82 -0
  74. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +133 -0
  75. data/JSON-Schema-Test-Suite/tests/draft3/default.json +49 -0
  76. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +118 -0
  77. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +80 -0
  78. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +60 -0
  79. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +71 -0
  80. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +94 -0
  81. data/JSON-Schema-Test-Suite/tests/draft3/items.json +46 -0
  82. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +28 -0
  83. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +33 -0
  84. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +42 -0
  85. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +28 -0
  86. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +33 -0
  87. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +73 -0
  88. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +107 -0
  89. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +227 -0
  90. data/JSON-Schema-Test-Suite/tests/draft3/optional/jsregex.json +18 -0
  91. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +15 -0
  92. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +34 -0
  93. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +115 -0
  94. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +97 -0
  95. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +192 -0
  96. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +74 -0
  97. data/JSON-Schema-Test-Suite/tests/draft3/required.json +53 -0
  98. data/JSON-Schema-Test-Suite/tests/draft3/type.json +489 -0
  99. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +79 -0
  100. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +87 -0
  101. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +133 -0
  102. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +185 -0
  103. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +156 -0
  104. data/JSON-Schema-Test-Suite/tests/draft4/default.json +49 -0
  105. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +32 -0
  106. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +194 -0
  107. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +179 -0
  108. data/JSON-Schema-Test-Suite/tests/draft4/items.json +195 -0
  109. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +28 -0
  110. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +33 -0
  111. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +38 -0
  112. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +73 -0
  113. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +28 -0
  114. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +33 -0
  115. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +38 -0
  116. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +104 -0
  117. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +60 -0
  118. data/JSON-Schema-Test-Suite/tests/draft4/not.json +96 -0
  119. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +162 -0
  120. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +107 -0
  121. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +13 -0
  122. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +253 -0
  123. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +15 -0
  124. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +34 -0
  125. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +120 -0
  126. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +136 -0
  127. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +411 -0
  128. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +171 -0
  129. data/JSON-Schema-Test-Suite/tests/draft4/required.json +89 -0
  130. data/JSON-Schema-Test-Suite/tests/draft4/type.json +464 -0
  131. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +89 -0
  132. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +87 -0
  133. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +133 -0
  134. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +218 -0
  135. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +189 -0
  136. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +104 -0
  137. data/JSON-Schema-Test-Suite/tests/draft6/const.json +170 -0
  138. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +100 -0
  139. data/JSON-Schema-Test-Suite/tests/draft6/default.json +49 -0
  140. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +32 -0
  141. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +268 -0
  142. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +179 -0
  143. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +30 -0
  144. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +30 -0
  145. data/JSON-Schema-Test-Suite/tests/draft6/items.json +250 -0
  146. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +28 -0
  147. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +33 -0
  148. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +38 -0
  149. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +28 -0
  150. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +28 -0
  151. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +33 -0
  152. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +38 -0
  153. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +59 -0
  154. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +60 -0
  155. data/JSON-Schema-Test-Suite/tests/draft6/not.json +117 -0
  156. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +206 -0
  157. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +105 -0
  158. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +13 -0
  159. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +491 -0
  160. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +15 -0
  161. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +34 -0
  162. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +151 -0
  163. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +167 -0
  164. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +78 -0
  165. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +443 -0
  166. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +171 -0
  167. data/JSON-Schema-Test-Suite/tests/draft6/required.json +105 -0
  168. data/JSON-Schema-Test-Suite/tests/draft6/type.json +464 -0
  169. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +89 -0
  170. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +87 -0
  171. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +133 -0
  172. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +218 -0
  173. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +189 -0
  174. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +104 -0
  175. data/JSON-Schema-Test-Suite/tests/draft7/const.json +170 -0
  176. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +100 -0
  177. data/JSON-Schema-Test-Suite/tests/draft7/default.json +49 -0
  178. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +32 -0
  179. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +268 -0
  180. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +179 -0
  181. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +30 -0
  182. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +30 -0
  183. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +188 -0
  184. data/JSON-Schema-Test-Suite/tests/draft7/items.json +250 -0
  185. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +28 -0
  186. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +33 -0
  187. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +38 -0
  188. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +28 -0
  189. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +28 -0
  190. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +33 -0
  191. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +38 -0
  192. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +59 -0
  193. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +60 -0
  194. data/JSON-Schema-Test-Suite/tests/draft7/not.json +117 -0
  195. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +206 -0
  196. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +105 -0
  197. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +77 -0
  198. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +13 -0
  199. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +53 -0
  200. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +23 -0
  201. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +18 -0
  202. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +33 -0
  203. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +18 -0
  204. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +28 -0
  205. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +33 -0
  206. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +28 -0
  207. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +43 -0
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +53 -0
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +168 -0
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +18 -0
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +33 -0
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +23 -0
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +43 -0
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +28 -0
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +103 -0
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +15 -0
  217. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +34 -0
  218. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +151 -0
  219. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +167 -0
  220. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +78 -0
  221. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +443 -0
  222. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +171 -0
  223. data/JSON-Schema-Test-Suite/tests/draft7/required.json +105 -0
  224. data/JSON-Schema-Test-Suite/tests/draft7/type.json +464 -0
  225. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +89 -0
  226. data/JSON-Schema-Test-Suite/tox.ini +8 -0
  227. data/README.md +1 -1
  228. data/lib/json_schemer/schema/base.rb +2 -2
  229. data/lib/json_schemer/version.rb +1 -1
  230. metadata +226 -4
  231. data/.gitmodules +0 -4
  232. data/.travis.yml +0 -10
@@ -0,0 +1,89 @@
1
+ [
2
+ {
3
+ "description": "uniqueItems validation",
4
+ "schema": {"uniqueItems": true},
5
+ "tests": [
6
+ {
7
+ "description": "unique array of integers is valid",
8
+ "data": [1, 2],
9
+ "valid": true
10
+ },
11
+ {
12
+ "description": "non-unique array of integers is invalid",
13
+ "data": [1, 1],
14
+ "valid": false
15
+ },
16
+ {
17
+ "description": "numbers are unique if mathematically unequal",
18
+ "data": [1.0, 1.00, 1],
19
+ "valid": false
20
+ },
21
+ {
22
+ "description": "false is not equal to zero",
23
+ "data": [0, false],
24
+ "valid": true
25
+ },
26
+ {
27
+ "description": "true is not equal to one",
28
+ "data": [1, true],
29
+ "valid": true
30
+ },
31
+ {
32
+ "description": "unique array of objects is valid",
33
+ "data": [{"foo": "bar"}, {"foo": "baz"}],
34
+ "valid": true
35
+ },
36
+ {
37
+ "description": "non-unique array of objects is invalid",
38
+ "data": [{"foo": "bar"}, {"foo": "bar"}],
39
+ "valid": false
40
+ },
41
+ {
42
+ "description": "unique array of nested objects is valid",
43
+ "data": [
44
+ {"foo": {"bar" : {"baz" : true}}},
45
+ {"foo": {"bar" : {"baz" : false}}}
46
+ ],
47
+ "valid": true
48
+ },
49
+ {
50
+ "description": "non-unique array of nested objects is invalid",
51
+ "data": [
52
+ {"foo": {"bar" : {"baz" : true}}},
53
+ {"foo": {"bar" : {"baz" : true}}}
54
+ ],
55
+ "valid": false
56
+ },
57
+ {
58
+ "description": "unique array of arrays is valid",
59
+ "data": [["foo"], ["bar"]],
60
+ "valid": true
61
+ },
62
+ {
63
+ "description": "non-unique array of arrays is invalid",
64
+ "data": [["foo"], ["foo"]],
65
+ "valid": false
66
+ },
67
+ {
68
+ "description": "1 and true are unique",
69
+ "data": [1, true],
70
+ "valid": true
71
+ },
72
+ {
73
+ "description": "0 and false are unique",
74
+ "data": [0, false],
75
+ "valid": true
76
+ },
77
+ {
78
+ "description": "unique heterogeneous types are valid",
79
+ "data": [{}, [1], true, null, 1],
80
+ "valid": true
81
+ },
82
+ {
83
+ "description": "non-unique heterogeneous types are invalid",
84
+ "data": [{}, [1], true, null, {}, 1],
85
+ "valid": false
86
+ }
87
+ ]
88
+ }
89
+ ]
@@ -0,0 +1,8 @@
1
+ [tox]
2
+ minversion = 1.6
3
+ envlist = py27
4
+ skipsdist = True
5
+
6
+ [testenv]
7
+ deps = jsonschema
8
+ commands = {envpython} bin/jsonschema_suite check
data/README.md CHANGED
@@ -106,7 +106,7 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
106
106
 
107
107
  ## Build Status
108
108
 
109
- [![Build Status](https://travis-ci.org/davishmcclurg/json_schemer.svg?branch=master)](https://travis-ci.org/davishmcclurg/json_schemer)
109
+ ![Build Status](https://github.com/davishmcclurg/json_schemer/workflows/ci/badge.svg)
110
110
 
111
111
  ## Contributing
112
112
 
@@ -258,7 +258,7 @@ module JSONSchemer
258
258
  subinstance = instance.merge(
259
259
  schema: ref_pointer.eval(root),
260
260
  schema_pointer: ref_uri.fragment,
261
- parent_uri: pointer_uri(root, ref_pointer)
261
+ parent_uri: (pointer_uri(root, ref_pointer) || ref_uri)
262
262
  )
263
263
  validate_instance(subinstance, &block)
264
264
  else
@@ -267,7 +267,7 @@ module JSONSchemer
267
267
  subinstance = instance.merge(
268
268
  schema: ref_pointer.eval(ref_root),
269
269
  schema_pointer: ref_uri.fragment,
270
- parent_uri: pointer_uri(ref_root, ref_pointer)
270
+ parent_uri: (pointer_uri(ref_root, ref_pointer) || ref_uri)
271
271
  )
272
272
  ref_object.validate_instance(subinstance, &block)
273
273
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module JSONSchemer
3
- VERSION = '0.2.6'
3
+ VERSION = '0.2.7'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_schemer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Harsha
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-09 00:00:00.000000000 Z
11
+ date: 2019-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -115,11 +115,233 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
+ - ".github/workflows/ci.yml"
118
119
  - ".gitignore"
119
- - ".gitmodules"
120
- - ".travis.yml"
121
120
  - Gemfile
122
121
  - Gemfile.lock
122
+ - JSON-Schema-Test-Suite/.gitignore
123
+ - JSON-Schema-Test-Suite/.travis.yml
124
+ - JSON-Schema-Test-Suite/LICENSE
125
+ - JSON-Schema-Test-Suite/README.md
126
+ - JSON-Schema-Test-Suite/bin/jsonschema_suite
127
+ - JSON-Schema-Test-Suite/index.js
128
+ - JSON-Schema-Test-Suite/package.json
129
+ - JSON-Schema-Test-Suite/remotes/folder/folderInteger.json
130
+ - JSON-Schema-Test-Suite/remotes/integer.json
131
+ - JSON-Schema-Test-Suite/remotes/name-defs.json
132
+ - JSON-Schema-Test-Suite/remotes/name.json
133
+ - JSON-Schema-Test-Suite/remotes/subSchemas.json
134
+ - JSON-Schema-Test-Suite/test-schema.json
135
+ - JSON-Schema-Test-Suite/tests/draft2019-08/additionalItems.json
136
+ - JSON-Schema-Test-Suite/tests/draft2019-08/additionalProperties.json
137
+ - JSON-Schema-Test-Suite/tests/draft2019-08/allOf.json
138
+ - JSON-Schema-Test-Suite/tests/draft2019-08/anyOf.json
139
+ - JSON-Schema-Test-Suite/tests/draft2019-08/boolean_schema.json
140
+ - JSON-Schema-Test-Suite/tests/draft2019-08/const.json
141
+ - JSON-Schema-Test-Suite/tests/draft2019-08/contains.json
142
+ - JSON-Schema-Test-Suite/tests/draft2019-08/default.json
143
+ - JSON-Schema-Test-Suite/tests/draft2019-08/defs.json
144
+ - JSON-Schema-Test-Suite/tests/draft2019-08/dependencies.json
145
+ - JSON-Schema-Test-Suite/tests/draft2019-08/enum.json
146
+ - JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMaximum.json
147
+ - JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMinimum.json
148
+ - JSON-Schema-Test-Suite/tests/draft2019-08/if-then-else.json
149
+ - JSON-Schema-Test-Suite/tests/draft2019-08/items.json
150
+ - JSON-Schema-Test-Suite/tests/draft2019-08/maxItems.json
151
+ - JSON-Schema-Test-Suite/tests/draft2019-08/maxLength.json
152
+ - JSON-Schema-Test-Suite/tests/draft2019-08/maxProperties.json
153
+ - JSON-Schema-Test-Suite/tests/draft2019-08/maximum.json
154
+ - JSON-Schema-Test-Suite/tests/draft2019-08/minItems.json
155
+ - JSON-Schema-Test-Suite/tests/draft2019-08/minLength.json
156
+ - JSON-Schema-Test-Suite/tests/draft2019-08/minProperties.json
157
+ - JSON-Schema-Test-Suite/tests/draft2019-08/minimum.json
158
+ - JSON-Schema-Test-Suite/tests/draft2019-08/multipleOf.json
159
+ - JSON-Schema-Test-Suite/tests/draft2019-08/not.json
160
+ - JSON-Schema-Test-Suite/tests/draft2019-08/oneOf.json
161
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/bignum.json
162
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/content.json
163
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/ecmascript-regex.json
164
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date-time.json
165
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date.json
166
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/email.json
167
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/hostname.json
168
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-email.json
169
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-hostname.json
170
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv4.json
171
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv6.json
172
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri-reference.json
173
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri.json
174
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/json-pointer.json
175
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/regex.json
176
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/relative-json-pointer.json
177
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/time.json
178
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-reference.json
179
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-template.json
180
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri.json
181
+ - JSON-Schema-Test-Suite/tests/draft2019-08/optional/zeroTerminatedFloats.json
182
+ - JSON-Schema-Test-Suite/tests/draft2019-08/pattern.json
183
+ - JSON-Schema-Test-Suite/tests/draft2019-08/patternProperties.json
184
+ - JSON-Schema-Test-Suite/tests/draft2019-08/properties.json
185
+ - JSON-Schema-Test-Suite/tests/draft2019-08/propertyNames.json
186
+ - JSON-Schema-Test-Suite/tests/draft2019-08/ref.json
187
+ - JSON-Schema-Test-Suite/tests/draft2019-08/refRemote.json
188
+ - JSON-Schema-Test-Suite/tests/draft2019-08/required.json
189
+ - JSON-Schema-Test-Suite/tests/draft2019-08/type.json
190
+ - JSON-Schema-Test-Suite/tests/draft2019-08/uniqueItems.json
191
+ - JSON-Schema-Test-Suite/tests/draft3/additionalItems.json
192
+ - JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json
193
+ - JSON-Schema-Test-Suite/tests/draft3/default.json
194
+ - JSON-Schema-Test-Suite/tests/draft3/dependencies.json
195
+ - JSON-Schema-Test-Suite/tests/draft3/disallow.json
196
+ - JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json
197
+ - JSON-Schema-Test-Suite/tests/draft3/enum.json
198
+ - JSON-Schema-Test-Suite/tests/draft3/extends.json
199
+ - JSON-Schema-Test-Suite/tests/draft3/items.json
200
+ - JSON-Schema-Test-Suite/tests/draft3/maxItems.json
201
+ - JSON-Schema-Test-Suite/tests/draft3/maxLength.json
202
+ - JSON-Schema-Test-Suite/tests/draft3/maximum.json
203
+ - JSON-Schema-Test-Suite/tests/draft3/minItems.json
204
+ - JSON-Schema-Test-Suite/tests/draft3/minLength.json
205
+ - JSON-Schema-Test-Suite/tests/draft3/minimum.json
206
+ - JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json
207
+ - JSON-Schema-Test-Suite/tests/draft3/optional/format.json
208
+ - JSON-Schema-Test-Suite/tests/draft3/optional/jsregex.json
209
+ - JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json
210
+ - JSON-Schema-Test-Suite/tests/draft3/pattern.json
211
+ - JSON-Schema-Test-Suite/tests/draft3/patternProperties.json
212
+ - JSON-Schema-Test-Suite/tests/draft3/properties.json
213
+ - JSON-Schema-Test-Suite/tests/draft3/ref.json
214
+ - JSON-Schema-Test-Suite/tests/draft3/refRemote.json
215
+ - JSON-Schema-Test-Suite/tests/draft3/required.json
216
+ - JSON-Schema-Test-Suite/tests/draft3/type.json
217
+ - JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json
218
+ - JSON-Schema-Test-Suite/tests/draft4/additionalItems.json
219
+ - JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json
220
+ - JSON-Schema-Test-Suite/tests/draft4/allOf.json
221
+ - JSON-Schema-Test-Suite/tests/draft4/anyOf.json
222
+ - JSON-Schema-Test-Suite/tests/draft4/default.json
223
+ - JSON-Schema-Test-Suite/tests/draft4/definitions.json
224
+ - JSON-Schema-Test-Suite/tests/draft4/dependencies.json
225
+ - JSON-Schema-Test-Suite/tests/draft4/enum.json
226
+ - JSON-Schema-Test-Suite/tests/draft4/items.json
227
+ - JSON-Schema-Test-Suite/tests/draft4/maxItems.json
228
+ - JSON-Schema-Test-Suite/tests/draft4/maxLength.json
229
+ - JSON-Schema-Test-Suite/tests/draft4/maxProperties.json
230
+ - JSON-Schema-Test-Suite/tests/draft4/maximum.json
231
+ - JSON-Schema-Test-Suite/tests/draft4/minItems.json
232
+ - JSON-Schema-Test-Suite/tests/draft4/minLength.json
233
+ - JSON-Schema-Test-Suite/tests/draft4/minProperties.json
234
+ - JSON-Schema-Test-Suite/tests/draft4/minimum.json
235
+ - JSON-Schema-Test-Suite/tests/draft4/multipleOf.json
236
+ - JSON-Schema-Test-Suite/tests/draft4/not.json
237
+ - JSON-Schema-Test-Suite/tests/draft4/oneOf.json
238
+ - JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json
239
+ - JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json
240
+ - JSON-Schema-Test-Suite/tests/draft4/optional/format.json
241
+ - JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json
242
+ - JSON-Schema-Test-Suite/tests/draft4/pattern.json
243
+ - JSON-Schema-Test-Suite/tests/draft4/patternProperties.json
244
+ - JSON-Schema-Test-Suite/tests/draft4/properties.json
245
+ - JSON-Schema-Test-Suite/tests/draft4/ref.json
246
+ - JSON-Schema-Test-Suite/tests/draft4/refRemote.json
247
+ - JSON-Schema-Test-Suite/tests/draft4/required.json
248
+ - JSON-Schema-Test-Suite/tests/draft4/type.json
249
+ - JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json
250
+ - JSON-Schema-Test-Suite/tests/draft6/additionalItems.json
251
+ - JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json
252
+ - JSON-Schema-Test-Suite/tests/draft6/allOf.json
253
+ - JSON-Schema-Test-Suite/tests/draft6/anyOf.json
254
+ - JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json
255
+ - JSON-Schema-Test-Suite/tests/draft6/const.json
256
+ - JSON-Schema-Test-Suite/tests/draft6/contains.json
257
+ - JSON-Schema-Test-Suite/tests/draft6/default.json
258
+ - JSON-Schema-Test-Suite/tests/draft6/definitions.json
259
+ - JSON-Schema-Test-Suite/tests/draft6/dependencies.json
260
+ - JSON-Schema-Test-Suite/tests/draft6/enum.json
261
+ - JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json
262
+ - JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json
263
+ - JSON-Schema-Test-Suite/tests/draft6/items.json
264
+ - JSON-Schema-Test-Suite/tests/draft6/maxItems.json
265
+ - JSON-Schema-Test-Suite/tests/draft6/maxLength.json
266
+ - JSON-Schema-Test-Suite/tests/draft6/maxProperties.json
267
+ - JSON-Schema-Test-Suite/tests/draft6/maximum.json
268
+ - JSON-Schema-Test-Suite/tests/draft6/minItems.json
269
+ - JSON-Schema-Test-Suite/tests/draft6/minLength.json
270
+ - JSON-Schema-Test-Suite/tests/draft6/minProperties.json
271
+ - JSON-Schema-Test-Suite/tests/draft6/minimum.json
272
+ - JSON-Schema-Test-Suite/tests/draft6/multipleOf.json
273
+ - JSON-Schema-Test-Suite/tests/draft6/not.json
274
+ - JSON-Schema-Test-Suite/tests/draft6/oneOf.json
275
+ - JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json
276
+ - JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json
277
+ - JSON-Schema-Test-Suite/tests/draft6/optional/format.json
278
+ - JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json
279
+ - JSON-Schema-Test-Suite/tests/draft6/pattern.json
280
+ - JSON-Schema-Test-Suite/tests/draft6/patternProperties.json
281
+ - JSON-Schema-Test-Suite/tests/draft6/properties.json
282
+ - JSON-Schema-Test-Suite/tests/draft6/propertyNames.json
283
+ - JSON-Schema-Test-Suite/tests/draft6/ref.json
284
+ - JSON-Schema-Test-Suite/tests/draft6/refRemote.json
285
+ - JSON-Schema-Test-Suite/tests/draft6/required.json
286
+ - JSON-Schema-Test-Suite/tests/draft6/type.json
287
+ - JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json
288
+ - JSON-Schema-Test-Suite/tests/draft7/additionalItems.json
289
+ - JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json
290
+ - JSON-Schema-Test-Suite/tests/draft7/allOf.json
291
+ - JSON-Schema-Test-Suite/tests/draft7/anyOf.json
292
+ - JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json
293
+ - JSON-Schema-Test-Suite/tests/draft7/const.json
294
+ - JSON-Schema-Test-Suite/tests/draft7/contains.json
295
+ - JSON-Schema-Test-Suite/tests/draft7/default.json
296
+ - JSON-Schema-Test-Suite/tests/draft7/definitions.json
297
+ - JSON-Schema-Test-Suite/tests/draft7/dependencies.json
298
+ - JSON-Schema-Test-Suite/tests/draft7/enum.json
299
+ - JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json
300
+ - JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json
301
+ - JSON-Schema-Test-Suite/tests/draft7/if-then-else.json
302
+ - JSON-Schema-Test-Suite/tests/draft7/items.json
303
+ - JSON-Schema-Test-Suite/tests/draft7/maxItems.json
304
+ - JSON-Schema-Test-Suite/tests/draft7/maxLength.json
305
+ - JSON-Schema-Test-Suite/tests/draft7/maxProperties.json
306
+ - JSON-Schema-Test-Suite/tests/draft7/maximum.json
307
+ - JSON-Schema-Test-Suite/tests/draft7/minItems.json
308
+ - JSON-Schema-Test-Suite/tests/draft7/minLength.json
309
+ - JSON-Schema-Test-Suite/tests/draft7/minProperties.json
310
+ - JSON-Schema-Test-Suite/tests/draft7/minimum.json
311
+ - JSON-Schema-Test-Suite/tests/draft7/multipleOf.json
312
+ - JSON-Schema-Test-Suite/tests/draft7/not.json
313
+ - JSON-Schema-Test-Suite/tests/draft7/oneOf.json
314
+ - JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json
315
+ - JSON-Schema-Test-Suite/tests/draft7/optional/content.json
316
+ - JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json
317
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json
318
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json
319
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json
320
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json
321
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json
322
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json
323
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json
324
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json
325
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json
326
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json
327
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json
328
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json
329
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json
330
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json
331
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json
332
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json
333
+ - JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json
334
+ - JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json
335
+ - JSON-Schema-Test-Suite/tests/draft7/pattern.json
336
+ - JSON-Schema-Test-Suite/tests/draft7/patternProperties.json
337
+ - JSON-Schema-Test-Suite/tests/draft7/properties.json
338
+ - JSON-Schema-Test-Suite/tests/draft7/propertyNames.json
339
+ - JSON-Schema-Test-Suite/tests/draft7/ref.json
340
+ - JSON-Schema-Test-Suite/tests/draft7/refRemote.json
341
+ - JSON-Schema-Test-Suite/tests/draft7/required.json
342
+ - JSON-Schema-Test-Suite/tests/draft7/type.json
343
+ - JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json
344
+ - JSON-Schema-Test-Suite/tox.ini
123
345
  - LICENSE.txt
124
346
  - README.md
125
347
  - Rakefile
@@ -1,4 +0,0 @@
1
- [submodule "JSON-Schema-Test-Suite"]
2
- path = JSON-Schema-Test-Suite
3
- url = https://github.com/json-schema-org/JSON-Schema-Test-Suite
4
- branch = master
@@ -1,10 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.6
5
- - 2.5
6
- - 2.4
7
- before_install: gem install bundler -v 1.16.1
8
- before_script:
9
- - pip install --user Flask
10
- - ./JSON-Schema-Test-Suite/bin/jsonschema_suite serve &