json_schemer 0.2.7 → 0.2.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -6
- data/Gemfile.lock +7 -7
- data/json_schemer.gemspec +3 -3
- data/lib/json_schemer.rb +2 -0
- data/lib/json_schemer/errors.rb +31 -0
- data/lib/json_schemer/format.rb +25 -58
- data/lib/json_schemer/schema/base.rb +52 -32
- data/lib/json_schemer/version.rb +1 -1
- metadata +8 -229
- data/JSON-Schema-Test-Suite/.gitignore +0 -1
- data/JSON-Schema-Test-Suite/.travis.yml +0 -8
- data/JSON-Schema-Test-Suite/LICENSE +0 -19
- data/JSON-Schema-Test-Suite/README.md +0 -181
- data/JSON-Schema-Test-Suite/bin/jsonschema_suite +0 -295
- data/JSON-Schema-Test-Suite/index.js +0 -45
- data/JSON-Schema-Test-Suite/package.json +0 -28
- data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +0 -3
- data/JSON-Schema-Test-Suite/remotes/integer.json +0 -3
- data/JSON-Schema-Test-Suite/remotes/name-defs.json +0 -11
- data/JSON-Schema-Test-Suite/remotes/name.json +0 -11
- data/JSON-Schema-Test-Suite/remotes/subSchemas.json +0 -8
- data/JSON-Schema-Test-Suite/test-schema.json +0 -59
- data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalItems.json +0 -87
- data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalProperties.json +0 -133
- data/JSON-Schema-Test-Suite/tests/draft2019-08/allOf.json +0 -218
- data/JSON-Schema-Test-Suite/tests/draft2019-08/anyOf.json +0 -189
- data/JSON-Schema-Test-Suite/tests/draft2019-08/boolean_schema.json +0 -104
- data/JSON-Schema-Test-Suite/tests/draft2019-08/const.json +0 -170
- data/JSON-Schema-Test-Suite/tests/draft2019-08/contains.json +0 -95
- data/JSON-Schema-Test-Suite/tests/draft2019-08/default.json +0 -49
- data/JSON-Schema-Test-Suite/tests/draft2019-08/defs.json +0 -24
- data/JSON-Schema-Test-Suite/tests/draft2019-08/dependencies.json +0 -268
- data/JSON-Schema-Test-Suite/tests/draft2019-08/enum.json +0 -179
- data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMaximum.json +0 -30
- data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMinimum.json +0 -30
- data/JSON-Schema-Test-Suite/tests/draft2019-08/if-then-else.json +0 -188
- data/JSON-Schema-Test-Suite/tests/draft2019-08/items.json +0 -250
- data/JSON-Schema-Test-Suite/tests/draft2019-08/maxItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft2019-08/maxLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft2019-08/maxProperties.json +0 -38
- data/JSON-Schema-Test-Suite/tests/draft2019-08/maximum.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft2019-08/minItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft2019-08/minLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft2019-08/minProperties.json +0 -38
- data/JSON-Schema-Test-Suite/tests/draft2019-08/minimum.json +0 -59
- data/JSON-Schema-Test-Suite/tests/draft2019-08/multipleOf.json +0 -60
- data/JSON-Schema-Test-Suite/tests/draft2019-08/not.json +0 -117
- data/JSON-Schema-Test-Suite/tests/draft2019-08/oneOf.json +0 -206
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/bignum.json +0 -105
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/content.json +0 -77
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/ecmascript-regex.json +0 -13
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date-time.json +0 -53
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date.json +0 -23
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/email.json +0 -18
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/hostname.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-email.json +0 -18
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-hostname.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv4.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv6.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri-reference.json +0 -43
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri.json +0 -53
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/json-pointer.json +0 -168
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/regex.json +0 -18
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/relative-json-pointer.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/time.json +0 -23
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-reference.json +0 -43
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-template.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri.json +0 -103
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/zeroTerminatedFloats.json +0 -15
- data/JSON-Schema-Test-Suite/tests/draft2019-08/pattern.json +0 -34
- data/JSON-Schema-Test-Suite/tests/draft2019-08/patternProperties.json +0 -151
- data/JSON-Schema-Test-Suite/tests/draft2019-08/properties.json +0 -167
- data/JSON-Schema-Test-Suite/tests/draft2019-08/propertyNames.json +0 -78
- data/JSON-Schema-Test-Suite/tests/draft2019-08/ref.json +0 -443
- data/JSON-Schema-Test-Suite/tests/draft2019-08/refRemote.json +0 -167
- data/JSON-Schema-Test-Suite/tests/draft2019-08/required.json +0 -105
- data/JSON-Schema-Test-Suite/tests/draft2019-08/type.json +0 -464
- data/JSON-Schema-Test-Suite/tests/draft2019-08/uniqueItems.json +0 -89
- data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +0 -82
- data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +0 -133
- data/JSON-Schema-Test-Suite/tests/draft3/default.json +0 -49
- data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +0 -118
- data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +0 -80
- data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +0 -60
- data/JSON-Schema-Test-Suite/tests/draft3/enum.json +0 -71
- data/JSON-Schema-Test-Suite/tests/draft3/extends.json +0 -94
- data/JSON-Schema-Test-Suite/tests/draft3/items.json +0 -46
- data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +0 -42
- data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +0 -73
- data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +0 -107
- data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +0 -227
- data/JSON-Schema-Test-Suite/tests/draft3/optional/jsregex.json +0 -18
- data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
- data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +0 -34
- data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +0 -115
- data/JSON-Schema-Test-Suite/tests/draft3/properties.json +0 -97
- data/JSON-Schema-Test-Suite/tests/draft3/ref.json +0 -192
- data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +0 -74
- data/JSON-Schema-Test-Suite/tests/draft3/required.json +0 -53
- data/JSON-Schema-Test-Suite/tests/draft3/type.json +0 -489
- data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +0 -79
- data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +0 -87
- data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +0 -133
- data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +0 -185
- data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +0 -156
- data/JSON-Schema-Test-Suite/tests/draft4/default.json +0 -49
- data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +0 -32
- data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +0 -194
- data/JSON-Schema-Test-Suite/tests/draft4/enum.json +0 -179
- data/JSON-Schema-Test-Suite/tests/draft4/items.json +0 -195
- data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +0 -38
- data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +0 -73
- data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +0 -38
- data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +0 -104
- data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +0 -60
- data/JSON-Schema-Test-Suite/tests/draft4/not.json +0 -96
- data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +0 -162
- data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +0 -107
- data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +0 -13
- data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +0 -253
- data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
- data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +0 -34
- data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +0 -120
- data/JSON-Schema-Test-Suite/tests/draft4/properties.json +0 -136
- data/JSON-Schema-Test-Suite/tests/draft4/ref.json +0 -411
- data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +0 -171
- data/JSON-Schema-Test-Suite/tests/draft4/required.json +0 -89
- data/JSON-Schema-Test-Suite/tests/draft4/type.json +0 -464
- data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +0 -89
- data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +0 -87
- data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +0 -133
- data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +0 -218
- data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +0 -189
- data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +0 -104
- data/JSON-Schema-Test-Suite/tests/draft6/const.json +0 -170
- data/JSON-Schema-Test-Suite/tests/draft6/contains.json +0 -100
- data/JSON-Schema-Test-Suite/tests/draft6/default.json +0 -49
- data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +0 -32
- data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +0 -268
- data/JSON-Schema-Test-Suite/tests/draft6/enum.json +0 -179
- data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +0 -30
- data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +0 -30
- data/JSON-Schema-Test-Suite/tests/draft6/items.json +0 -250
- data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +0 -38
- data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +0 -38
- data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +0 -59
- data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +0 -60
- data/JSON-Schema-Test-Suite/tests/draft6/not.json +0 -117
- data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +0 -206
- data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +0 -105
- data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +0 -13
- data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +0 -491
- data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +0 -15
- data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +0 -34
- data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +0 -151
- data/JSON-Schema-Test-Suite/tests/draft6/properties.json +0 -167
- data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +0 -78
- data/JSON-Schema-Test-Suite/tests/draft6/ref.json +0 -443
- data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +0 -171
- data/JSON-Schema-Test-Suite/tests/draft6/required.json +0 -105
- data/JSON-Schema-Test-Suite/tests/draft6/type.json +0 -464
- data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +0 -89
- data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +0 -87
- data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +0 -133
- data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +0 -218
- data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +0 -189
- data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +0 -104
- data/JSON-Schema-Test-Suite/tests/draft7/const.json +0 -170
- data/JSON-Schema-Test-Suite/tests/draft7/contains.json +0 -100
- data/JSON-Schema-Test-Suite/tests/draft7/default.json +0 -49
- data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +0 -32
- data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +0 -268
- data/JSON-Schema-Test-Suite/tests/draft7/enum.json +0 -179
- data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +0 -30
- data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +0 -30
- data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +0 -188
- data/JSON-Schema-Test-Suite/tests/draft7/items.json +0 -250
- data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +0 -38
- data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +0 -38
- data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +0 -59
- data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +0 -60
- data/JSON-Schema-Test-Suite/tests/draft7/not.json +0 -117
- data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +0 -206
- data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +0 -105
- data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +0 -77
- data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +0 -13
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +0 -53
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +0 -23
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +0 -18
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +0 -18
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +0 -43
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +0 -53
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +0 -168
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +0 -18
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +0 -33
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +0 -23
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +0 -43
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +0 -28
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +0 -103
- data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +0 -15
- data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +0 -34
- data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +0 -151
- data/JSON-Schema-Test-Suite/tests/draft7/properties.json +0 -167
- data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +0 -78
- data/JSON-Schema-Test-Suite/tests/draft7/ref.json +0 -443
- data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +0 -171
- data/JSON-Schema-Test-Suite/tests/draft7/required.json +0 -105
- data/JSON-Schema-Test-Suite/tests/draft7/type.json +0 -464
- data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +0 -89
- data/JSON-Schema-Test-Suite/tox.ini +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d07c36d5981512e6980d79a12084d309b92db45490d3ea821d02713c71fd5fc
|
4
|
+
data.tar.gz: 20dad8f563ba3ca0dcb7586641cf804aea2f727ed4def911fb105fd7bb14965f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 199c651105b1330a6946d7099d9c9c0d4f74d1922e03cf3855870660f32c81fb6f94d3748555d17cde6fb56b5b2029388099f7bf977f5585df8ec7dd5da726b5
|
7
|
+
data.tar.gz: e2acf5a285a724dc1c5c99fe35e081ab30f934554aa2f02c691926d75f3ac681594c015ef9224b7d2f70be98dd8d39404f8e4b0c3c87285f23314b523111d20e
|
data/.github/workflows/ci.yml
CHANGED
@@ -4,19 +4,14 @@ jobs:
|
|
4
4
|
ruby:
|
5
5
|
strategy:
|
6
6
|
matrix:
|
7
|
-
ruby: [2.
|
7
|
+
ruby: [2.5.x, 2.6.x, 2.7.x]
|
8
8
|
runs-on: ubuntu-latest
|
9
9
|
steps:
|
10
10
|
- uses: actions/checkout@v1
|
11
11
|
- uses: actions/setup-ruby@v1
|
12
12
|
with:
|
13
13
|
ruby-version: ${{ matrix.ruby }}
|
14
|
-
- uses: actions/setup-python@v1
|
15
|
-
with:
|
16
|
-
python-version: 3.x
|
17
14
|
- run: |
|
18
|
-
pip install --user Flask
|
19
|
-
./JSON-Schema-Test-Suite/bin/jsonschema_suite serve &
|
20
15
|
gem install bundler
|
21
16
|
bundle install
|
22
17
|
bundle exec rake test
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
json_schemer (0.2.
|
4
|
+
json_schemer (0.2.12)
|
5
5
|
ecma-re-validator (~> 0.2)
|
6
6
|
hana (~> 1.3)
|
7
7
|
regexp_parser (~> 1.5)
|
@@ -10,12 +10,12 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
ecma-re-validator (0.2.
|
13
|
+
ecma-re-validator (0.2.1)
|
14
14
|
regexp_parser (~> 1.2)
|
15
|
-
hana (1.3.
|
15
|
+
hana (1.3.6)
|
16
16
|
minitest (5.11.3)
|
17
|
-
rake (
|
18
|
-
regexp_parser (1.
|
17
|
+
rake (13.0.1)
|
18
|
+
regexp_parser (1.7.1)
|
19
19
|
uri_template (0.7.0)
|
20
20
|
|
21
21
|
PLATFORMS
|
@@ -25,7 +25,7 @@ DEPENDENCIES
|
|
25
25
|
bundler (~> 2.0)
|
26
26
|
json_schemer!
|
27
27
|
minitest (~> 5.0)
|
28
|
-
rake (~>
|
28
|
+
rake (~> 13.0)
|
29
29
|
|
30
30
|
BUNDLED WITH
|
31
|
-
2.
|
31
|
+
2.1.4
|
data/json_schemer.gemspec
CHANGED
@@ -14,16 +14,16 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
-
f.match(%r{^(test|spec|features)/})
|
17
|
+
f.match(%r{^(test|spec|features|JSON-Schema-Test-Suite)/})
|
18
18
|
end
|
19
19
|
spec.bindir = "exe"
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.required_ruby_version = '~> 2.
|
23
|
+
spec.required_ruby_version = '~> 2.5'
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 2.0"
|
26
|
-
spec.add_development_dependency "rake", "~>
|
26
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
27
27
|
spec.add_development_dependency "minitest", "~> 5.0"
|
28
28
|
|
29
29
|
# spec.add_development_dependency "benchmark-ips", "~> 2.7.2"
|
data/lib/json_schemer.rb
CHANGED
@@ -14,6 +14,7 @@ require 'uri_template'
|
|
14
14
|
|
15
15
|
require 'json_schemer/version'
|
16
16
|
require 'json_schemer/format'
|
17
|
+
require 'json_schemer/errors'
|
17
18
|
require 'json_schemer/cached_ref_resolver'
|
18
19
|
require 'json_schemer/schema/base'
|
19
20
|
require 'json_schemer/schema/draft4'
|
@@ -28,6 +29,7 @@ module JSONSchemer
|
|
28
29
|
class InvalidSymbolKey < StandardError; end
|
29
30
|
|
30
31
|
DRAFT_CLASS_BY_META_SCHEMA = {
|
32
|
+
'http://json-schema.org/schema#' => Schema::Draft4, # Version-less $schema deprecated after Draft 4
|
31
33
|
'http://json-schema.org/draft-04/schema#' => Schema::Draft4,
|
32
34
|
'http://json-schema.org/draft-06/schema#' => Schema::Draft6,
|
33
35
|
'http://json-schema.org/draft-07/schema#' => Schema::Draft7
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# Based on code from @robacarp found in issue 48:
|
2
|
+
# https://github.com/davishmcclurg/json_schemer/issues/48
|
3
|
+
#
|
4
|
+
module JSONSchemer
|
5
|
+
module Errors
|
6
|
+
class << self
|
7
|
+
def pretty(error)
|
8
|
+
data_pointer, type, schema = error.values_at('data_pointer', 'type', 'schema')
|
9
|
+
location = data_pointer.empty? ? 'root' : "property '#{data_pointer}'"
|
10
|
+
|
11
|
+
case type
|
12
|
+
when 'required'
|
13
|
+
keys = error.fetch('details').fetch('missing_keys').join(', ')
|
14
|
+
"#{location} is missing required keys: #{keys}"
|
15
|
+
when 'null', 'string', 'boolean', 'integer', 'number', 'array', 'object'
|
16
|
+
"#{location} is not of type: #{type}"
|
17
|
+
when 'pattern'
|
18
|
+
"#{location} does not match pattern: #{schema.fetch('pattern')}"
|
19
|
+
when 'format'
|
20
|
+
"#{location} does not match format: #{schema.fetch('format')}"
|
21
|
+
when 'const'
|
22
|
+
"#{location} is not: #{schema.fetch('const').inspect}"
|
23
|
+
when 'enum'
|
24
|
+
"#{location} is not one of: #{schema.fetch('enum')}"
|
25
|
+
else
|
26
|
+
"#{location} is invalid: error_type=#{type}"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/json_schemer/format.rb
CHANGED
@@ -9,56 +9,7 @@ module JSONSchemer
|
|
9
9
|
JSON_POINTER_REGEX = /\A#{JSON_POINTER_REGEX_STRING}\z/.freeze
|
10
10
|
RELATIVE_JSON_POINTER_REGEX = /\A(0|[1-9]\d*)(#|#{JSON_POINTER_REGEX_STRING})?\z/.freeze
|
11
11
|
DATE_TIME_OFFSET_REGEX = /(Z|[\+\-]([01][0-9]|2[0-3]):[0-5][0-9])\z/i.freeze
|
12
|
-
|
13
|
-
# https://github.com/ruby-rdf/rdf
|
14
|
-
|
15
|
-
# IRI components
|
16
|
-
UCSCHAR = Regexp.compile(<<-EOS.gsub(/\s+/, ''))
|
17
|
-
[\\u00A0-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFEF]|
|
18
|
-
[\\u{10000}-\\u{1FFFD}]|[\\u{20000}-\\u{2FFFD}]|[\\u{30000}-\\u{3FFFD}]|
|
19
|
-
[\\u{40000}-\\u{4FFFD}]|[\\u{50000}-\\u{5FFFD}]|[\\u{60000}-\\u{6FFFD}]|
|
20
|
-
[\\u{70000}-\\u{7FFFD}]|[\\u{80000}-\\u{8FFFD}]|[\\u{90000}-\\u{9FFFD}]|
|
21
|
-
[\\u{A0000}-\\u{AFFFD}]|[\\u{B0000}-\\u{BFFFD}]|[\\u{C0000}-\\u{CFFFD}]|
|
22
|
-
[\\u{D0000}-\\u{DFFFD}]|[\\u{E1000}-\\u{EFFFD}]
|
23
|
-
EOS
|
24
|
-
IPRIVATE = Regexp.compile("[\\uE000-\\uF8FF]|[\\u{F0000}-\\u{FFFFD}]|[\\u100000-\\u10FFFD]").freeze
|
25
|
-
SCHEME = Regexp.compile("[A-Za-z](?:[A-Za-z0-9+-\.])*").freeze
|
26
|
-
PORT = Regexp.compile("[0-9]*").freeze
|
27
|
-
IP_LITERAL = Regexp.compile("\\[[0-9A-Fa-f:\\.]*\\]").freeze # Simplified, no IPvFuture
|
28
|
-
PCT_ENCODED = Regexp.compile("%[0-9A-Fa-f][0-9A-Fa-f]").freeze
|
29
|
-
GEN_DELIMS = Regexp.compile("[:/\\?\\#\\[\\]@]").freeze
|
30
|
-
SUB_DELIMS = Regexp.compile("[!\\$&'\\(\\)\\*\\+,;=]").freeze
|
31
|
-
RESERVED = Regexp.compile("(?:#{GEN_DELIMS}|#{SUB_DELIMS})").freeze
|
32
|
-
UNRESERVED = Regexp.compile("[A-Za-z0-9\._~-]").freeze
|
33
|
-
|
34
|
-
IUNRESERVED = Regexp.compile("[A-Za-z0-9\._~-]|#{UCSCHAR}").freeze
|
35
|
-
|
36
|
-
IPCHAR = Regexp.compile("(?:#{IUNRESERVED}|#{PCT_ENCODED}|#{SUB_DELIMS}|:|@)").freeze
|
37
|
-
|
38
|
-
IQUERY = Regexp.compile("(?:#{IPCHAR}|#{IPRIVATE}|/|\\?)*").freeze
|
39
|
-
|
40
|
-
IFRAGMENT = Regexp.compile("(?:#{IPCHAR}|/|\\?)*").freeze.freeze
|
41
|
-
|
42
|
-
ISEGMENT = Regexp.compile("(?:#{IPCHAR})*").freeze
|
43
|
-
ISEGMENT_NZ = Regexp.compile("(?:#{IPCHAR})+").freeze
|
44
|
-
ISEGMENT_NZ_NC = Regexp.compile("(?:(?:#{IUNRESERVED})|(?:#{PCT_ENCODED})|(?:#{SUB_DELIMS})|@)+").freeze
|
45
|
-
|
46
|
-
IPATH_ABEMPTY = Regexp.compile("(?:/#{ISEGMENT})*").freeze
|
47
|
-
IPATH_ABSOLUTE = Regexp.compile("/(?:(?:#{ISEGMENT_NZ})(/#{ISEGMENT})*)?").freeze
|
48
|
-
IPATH_NOSCHEME = Regexp.compile("(?:#{ISEGMENT_NZ_NC})(?:/#{ISEGMENT})*").freeze
|
49
|
-
IPATH_ROOTLESS = Regexp.compile("(?:#{ISEGMENT_NZ})(?:/#{ISEGMENT})*").freeze
|
50
|
-
IPATH_EMPTY = Regexp.compile("").freeze
|
51
|
-
|
52
|
-
IREG_NAME = Regexp.compile("(?:(?:#{IUNRESERVED})|(?:#{PCT_ENCODED})|(?:#{SUB_DELIMS}))*").freeze
|
53
|
-
IHOST = Regexp.compile("(?:#{IP_LITERAL})|(?:#{IREG_NAME})").freeze
|
54
|
-
IUSERINFO = Regexp.compile("(?:(?:#{IUNRESERVED})|(?:#{PCT_ENCODED})|(?:#{SUB_DELIMS})|:)*").freeze
|
55
|
-
IAUTHORITY = Regexp.compile("(?:#{IUSERINFO}@)?#{IHOST}(?::#{PORT})?").freeze
|
56
|
-
|
57
|
-
IRELATIVE_PART = Regexp.compile("(?:(?://#{IAUTHORITY}(?:#{IPATH_ABEMPTY}))|(?:#{IPATH_ABSOLUTE})|(?:#{IPATH_NOSCHEME})|(?:#{IPATH_EMPTY}))").freeze
|
58
|
-
IRELATIVE_REF = Regexp.compile("^#{IRELATIVE_PART}(?:\\?#{IQUERY})?(?:\\##{IFRAGMENT})?$").freeze
|
59
|
-
|
60
|
-
IHIER_PART = Regexp.compile("(?:(?://#{IAUTHORITY}#{IPATH_ABEMPTY})|(?:#{IPATH_ABSOLUTE})|(?:#{IPATH_ROOTLESS})|(?:#{IPATH_EMPTY}))").freeze
|
61
|
-
IRI = Regexp.compile("^#{SCHEME}:(?:#{IHIER_PART})(?:\\?#{IQUERY})?(?:\\##{IFRAGMENT})?$").freeze
|
12
|
+
INVALID_QUERY_REGEX = /[[:space:]]/.freeze
|
62
13
|
|
63
14
|
def valid_spec_format?(data, format)
|
64
15
|
case format
|
@@ -81,13 +32,13 @@ module JSONSchemer
|
|
81
32
|
when 'ipv6'
|
82
33
|
valid_ip?(data, :v6)
|
83
34
|
when 'uri'
|
84
|
-
|
35
|
+
valid_uri?(data)
|
85
36
|
when 'uri-reference'
|
86
|
-
|
37
|
+
valid_uri_reference?(data)
|
87
38
|
when 'iri'
|
88
|
-
|
39
|
+
valid_uri?(iri_escape(data))
|
89
40
|
when 'iri-reference'
|
90
|
-
|
41
|
+
valid_uri_reference?(iri_escape(data))
|
91
42
|
when 'uri-template'
|
92
43
|
valid_uri_template?(data)
|
93
44
|
when 'json-pointer'
|
@@ -129,12 +80,28 @@ module JSONSchemer
|
|
129
80
|
false
|
130
81
|
end
|
131
82
|
|
132
|
-
def
|
133
|
-
|
83
|
+
def parse_uri_scheme(data)
|
84
|
+
scheme, _userinfo, _host, _port, _registry, _path, opaque, query, _fragment = URI::RFC3986_PARSER.split(data)
|
85
|
+
# URI::RFC3986_PARSER.parse allows spaces in these and I don't think it should
|
86
|
+
raise URI::InvalidURIError if INVALID_QUERY_REGEX.match?(query) || INVALID_QUERY_REGEX.match?(opaque)
|
87
|
+
scheme
|
88
|
+
end
|
89
|
+
|
90
|
+
def valid_uri?(data)
|
91
|
+
!!parse_uri_scheme(data)
|
92
|
+
rescue URI::InvalidURIError
|
93
|
+
false
|
94
|
+
end
|
95
|
+
|
96
|
+
def valid_uri_reference?(data)
|
97
|
+
parse_uri_scheme(data)
|
98
|
+
true
|
99
|
+
rescue URI::InvalidURIError
|
100
|
+
false
|
134
101
|
end
|
135
102
|
|
136
|
-
def
|
137
|
-
|
103
|
+
def iri_escape(data)
|
104
|
+
URI.escape(data, /[^[[:ascii:]]]/)
|
138
105
|
end
|
139
106
|
|
140
107
|
def valid_uri_template?(data)
|
@@ -4,15 +4,16 @@ module JSONSchemer
|
|
4
4
|
class Base
|
5
5
|
include Format
|
6
6
|
|
7
|
-
Instance = Struct.new(:data, :data_pointer, :schema, :schema_pointer, :parent_uri) do
|
7
|
+
Instance = Struct.new(:data, :data_pointer, :schema, :schema_pointer, :parent_uri, :insert_property_defaults) do
|
8
8
|
def merge(
|
9
9
|
data: self.data,
|
10
10
|
data_pointer: self.data_pointer,
|
11
11
|
schema: self.schema,
|
12
12
|
schema_pointer: self.schema_pointer,
|
13
|
-
parent_uri: self.parent_uri
|
13
|
+
parent_uri: self.parent_uri,
|
14
|
+
insert_property_defaults: self.insert_property_defaults
|
14
15
|
)
|
15
|
-
self.class.new(data, data_pointer, schema, schema_pointer, parent_uri)
|
16
|
+
self.class.new(data, data_pointer, schema, schema_pointer, parent_uri, insert_property_defaults)
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
@@ -46,11 +47,11 @@ module JSONSchemer
|
|
46
47
|
end
|
47
48
|
|
48
49
|
def valid?(data)
|
49
|
-
valid_instance?(Instance.new(data, '', root, '', nil))
|
50
|
+
valid_instance?(Instance.new(data, '', root, '', nil, !!@insert_property_defaults))
|
50
51
|
end
|
51
52
|
|
52
53
|
def validate(data)
|
53
|
-
validate_instance(Instance.new(data, '', root, '', nil))
|
54
|
+
validate_instance(Instance.new(data, '', root, '', nil, !!@insert_property_defaults))
|
54
55
|
end
|
55
56
|
|
56
57
|
protected
|
@@ -115,20 +116,35 @@ module JSONSchemer
|
|
115
116
|
|
116
117
|
if all_of
|
117
118
|
all_of.each_with_index do |subschema, index|
|
118
|
-
|
119
|
+
subinstance = instance.merge(
|
120
|
+
schema: subschema,
|
121
|
+
schema_pointer: "#{instance.schema_pointer}/allOf/#{index}",
|
122
|
+
insert_property_defaults: false
|
123
|
+
)
|
124
|
+
validate_instance(subinstance, &block)
|
119
125
|
end
|
120
126
|
end
|
121
127
|
|
122
128
|
if any_of
|
123
129
|
subschemas = any_of.lazy.with_index.map do |subschema, index|
|
124
|
-
|
130
|
+
subinstance = instance.merge(
|
131
|
+
schema: subschema,
|
132
|
+
schema_pointer: "#{instance.schema_pointer}/anyOf/#{index}",
|
133
|
+
insert_property_defaults: false
|
134
|
+
)
|
135
|
+
validate_instance(subinstance)
|
125
136
|
end
|
126
137
|
subschemas.each { |subschema| subschema.each(&block) } unless subschemas.any?(&:none?)
|
127
138
|
end
|
128
139
|
|
129
140
|
if one_of
|
130
141
|
subschemas = one_of.map.with_index do |subschema, index|
|
131
|
-
|
142
|
+
subinstance = instance.merge(
|
143
|
+
schema: subschema,
|
144
|
+
schema_pointer: "#{instance.schema_pointer}/oneOf/#{index}",
|
145
|
+
insert_property_defaults: false
|
146
|
+
)
|
147
|
+
validate_instance(subinstance)
|
132
148
|
end
|
133
149
|
valid_subschema_count = subschemas.count(&:none?)
|
134
150
|
if valid_subschema_count > 1
|
@@ -139,11 +155,15 @@ module JSONSchemer
|
|
139
155
|
end
|
140
156
|
|
141
157
|
unless not_schema.nil?
|
142
|
-
subinstance = instance.merge(
|
158
|
+
subinstance = instance.merge(
|
159
|
+
schema: not_schema,
|
160
|
+
schema_pointer: "#{instance.schema_pointer}/not",
|
161
|
+
insert_property_defaults: false
|
162
|
+
)
|
143
163
|
yield error(subinstance, 'not') if valid_instance?(subinstance)
|
144
164
|
end
|
145
165
|
|
146
|
-
if if_schema && valid_instance?(instance.merge(schema: if_schema))
|
166
|
+
if if_schema && valid_instance?(instance.merge(schema: if_schema, insert_property_defaults: false))
|
147
167
|
validate_instance(instance.merge(schema: then_schema, schema_pointer: "#{instance.schema_pointer}/then"), &block) unless then_schema.nil?
|
148
168
|
elsif if_schema
|
149
169
|
validate_instance(instance.merge(schema: else_schema, schema_pointer: "#{instance.schema_pointer}/else"), &block) unless else_schema.nil?
|
@@ -179,10 +199,6 @@ module JSONSchemer
|
|
179
199
|
!!@format
|
180
200
|
end
|
181
201
|
|
182
|
-
def insert_property_defaults?
|
183
|
-
!!@insert_property_defaults
|
184
|
-
end
|
185
|
-
|
186
202
|
def custom_format?(format)
|
187
203
|
!!(formats && formats.key?(format))
|
188
204
|
end
|
@@ -195,7 +211,6 @@ module JSONSchemer
|
|
195
211
|
JSONSchemer.schema(
|
196
212
|
schema,
|
197
213
|
format: format?,
|
198
|
-
insert_property_defaults: insert_property_defaults?,
|
199
214
|
formats: formats,
|
200
215
|
keywords: keywords,
|
201
216
|
ref_resolver: ref_resolver
|
@@ -250,27 +265,32 @@ module JSONSchemer
|
|
250
265
|
end
|
251
266
|
|
252
267
|
def validate_ref(instance, ref, &block)
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
if ref.start_with?('#')
|
268
|
+
if ref.start_with?('#')
|
269
|
+
schema_pointer = ref.slice(1..-1)
|
270
|
+
if valid_json_pointer?(schema_pointer)
|
271
|
+
ref_pointer = Hana::Pointer.new(URI.decode_www_form_component(schema_pointer))
|
258
272
|
subinstance = instance.merge(
|
259
273
|
schema: ref_pointer.eval(root),
|
260
|
-
schema_pointer:
|
261
|
-
parent_uri: (pointer_uri(root, ref_pointer) ||
|
274
|
+
schema_pointer: schema_pointer,
|
275
|
+
parent_uri: (pointer_uri(root, ref_pointer) || instance.parent_uri)
|
262
276
|
)
|
263
277
|
validate_instance(subinstance, &block)
|
264
|
-
|
265
|
-
ref_root = resolve_ref(ref_uri)
|
266
|
-
ref_object = child(ref_root)
|
267
|
-
subinstance = instance.merge(
|
268
|
-
schema: ref_pointer.eval(ref_root),
|
269
|
-
schema_pointer: ref_uri.fragment,
|
270
|
-
parent_uri: (pointer_uri(ref_root, ref_pointer) || ref_uri)
|
271
|
-
)
|
272
|
-
ref_object.validate_instance(subinstance, &block)
|
278
|
+
return
|
273
279
|
end
|
280
|
+
end
|
281
|
+
|
282
|
+
ref_uri = join_uri(instance.parent_uri, ref)
|
283
|
+
|
284
|
+
if valid_json_pointer?(ref_uri.fragment)
|
285
|
+
ref_pointer = Hana::Pointer.new(URI.decode_www_form_component(ref_uri.fragment))
|
286
|
+
ref_root = resolve_ref(ref_uri)
|
287
|
+
ref_object = child(ref_root)
|
288
|
+
subinstance = instance.merge(
|
289
|
+
schema: ref_pointer.eval(ref_root),
|
290
|
+
schema_pointer: ref_uri.fragment,
|
291
|
+
parent_uri: (pointer_uri(ref_root, ref_pointer) || ref_uri)
|
292
|
+
)
|
293
|
+
ref_object.validate_instance(subinstance, &block)
|
274
294
|
elsif id = ids[ref_uri.to_s]
|
275
295
|
subinstance = instance.merge(
|
276
296
|
schema: id.fetch(:schema),
|
@@ -467,7 +487,7 @@ module JSONSchemer
|
|
467
487
|
dependencies = schema['dependencies']
|
468
488
|
property_names = schema['propertyNames']
|
469
489
|
|
470
|
-
if insert_property_defaults
|
490
|
+
if instance.insert_property_defaults && properties
|
471
491
|
properties.each do |property, property_schema|
|
472
492
|
if !data.key?(property) && property_schema.is_a?(Hash) && property_schema.key?('default')
|
473
493
|
data[property] = property_schema.fetch('default').clone
|
data/lib/json_schemer/version.rb
CHANGED
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.
|
4
|
+
version: 0.2.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Harsha
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,229 +119,6 @@ files:
|
|
119
119
|
- ".gitignore"
|
120
120
|
- Gemfile
|
121
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
|
345
122
|
- LICENSE.txt
|
346
123
|
- README.md
|
347
124
|
- Rakefile
|
@@ -350,6 +127,7 @@ files:
|
|
350
127
|
- json_schemer.gemspec
|
351
128
|
- lib/json_schemer.rb
|
352
129
|
- lib/json_schemer/cached_ref_resolver.rb
|
130
|
+
- lib/json_schemer/errors.rb
|
353
131
|
- lib/json_schemer/format.rb
|
354
132
|
- lib/json_schemer/schema/base.rb
|
355
133
|
- lib/json_schemer/schema/draft4.rb
|
@@ -368,14 +146,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
368
146
|
requirements:
|
369
147
|
- - "~>"
|
370
148
|
- !ruby/object:Gem::Version
|
371
|
-
version: '2.
|
149
|
+
version: '2.5'
|
372
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
373
151
|
requirements:
|
374
152
|
- - ">="
|
375
153
|
- !ruby/object:Gem::Version
|
376
154
|
version: '0'
|
377
155
|
requirements: []
|
378
|
-
|
156
|
+
rubyforge_project:
|
157
|
+
rubygems_version: 2.7.6
|
379
158
|
signing_key:
|
380
159
|
specification_version: 4
|
381
160
|
summary: JSON Schema validator. Supports drafts 4, 6, and 7.
|