json_schemer 2.2.0 → 2.3.0

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
  SHA256:
3
- metadata.gz: 4013d2026a3ac04ca50649b4cf6437ea2ee477ed1e9d350942cfa7e56ead0828
4
- data.tar.gz: 810f08388b21cc68d849181a87a820982c2fc7a577c402d5e05699b0c8d07507
3
+ metadata.gz: e5ec5b8e547dc3a64b134054ec80b0f40cf9453cba4cce430995e6ae165a6e07
4
+ data.tar.gz: 943423f15ba47e7b8ecc5fbf3d1b566679c43e84e3d70bbc4e0f47f126e4275f
5
5
  SHA512:
6
- metadata.gz: f4c5bb6fe5e6d4e0ccfd8abd28a0c12ae23254e74c807ba94278680bf7b706970276cef14f26eaf488f9c46ebd8d418b5aef90bf4abd886b9fd1d7513bb6d27a
7
- data.tar.gz: 19a0c839189ba44d6688c389fa38b3f0b1ccc9986643471e2df4d50c347c5ce22ec3fa170002fc000fc877e05080842b57cc01351f46ff1e876ba972880e6584
6
+ metadata.gz: 43c26354e594ae3219e0edd22e18b6d89a64b6cbad6bc4ac3e85750ccc128c3827d7aa38b1dc0d48a232c733250467939eaa8d6049ab8d34c75f5a0ac6f0e715
7
+ data.tar.gz: eced2c5592c64adfffb89923d28a363494f09bdd87202233706baa24ad4067e8240a85120a29eb2145b70a5f9bbf85e3a7f2f71fbdd1a89a74bc2cc6e3a243ed
@@ -6,8 +6,12 @@ jobs:
6
6
  fail-fast: false
7
7
  matrix:
8
8
  os: [ubuntu-latest, windows-latest, macos-latest]
9
- ruby: [2.5, 2.6, 2.7, 3.0, 3.1, 3.2, 3.3, head, jruby, jruby-head, truffleruby, truffleruby-head]
9
+ ruby: [2.7, 3.0, 3.1, 3.2, 3.3, head, jruby, jruby-head, truffleruby, truffleruby-head]
10
10
  exclude:
11
+ - os: ubuntu-latest
12
+ ruby: head
13
+ - os: macos-latest
14
+ ruby: head
11
15
  - os: windows-latest
12
16
  ruby: truffleruby
13
17
  - os: windows-latest
data/CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
1
  # Changelog
2
2
 
3
- ## [2.2.0] - XXXX-XX-XX
3
+ ## [2.3.0] - 2024-05-30
4
+
5
+ ## Ruby Versions
6
+
7
+ - Ruby 2.5 and 2.6 are no longer supported.
8
+
9
+ ## Bug Fixes
10
+
11
+ - Remove `base64` runtime dependency: https://github.com/davishmcclurg/json_schemer/pull/182
12
+ - Relax `uuid` format validation: https://github.com/davishmcclurg/json_schemer/pull/183
13
+
14
+ [2.3.0]: https://github.com/davishmcclurg/json_schemer/releases/tag/v2.3.0
15
+
16
+ ## [2.2.0] - 2024-03-02
4
17
 
5
18
  ## Bug Fixes
6
19
 
data/Gemfile.lock CHANGED
@@ -1,8 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- json_schemer (2.2.0)
5
- base64
4
+ json_schemer (2.3.0)
6
5
  bigdecimal
7
6
  hana (~> 1.3)
8
7
  regexp_parser (~> 2.0)
@@ -12,8 +11,8 @@ GEM
12
11
  remote: https://rubygems.org/
13
12
  specs:
14
13
  base64 (0.2.0)
15
- bigdecimal (3.1.6)
16
- bigdecimal (3.1.6-java)
14
+ bigdecimal (3.1.8)
15
+ bigdecimal (3.1.8-java)
17
16
  concurrent-ruby (1.2.2)
18
17
  csv (3.2.8)
19
18
  docile (1.4.0)
@@ -24,25 +23,21 @@ GEM
24
23
  i18n (< 2)
25
24
  minitest (5.15.0)
26
25
  rake (13.1.0)
27
- regexp_parser (2.9.0)
26
+ regexp_parser (2.9.2)
28
27
  simplecov (0.22.0)
29
28
  docile (~> 1.1)
30
29
  simplecov-html (~> 0.11)
31
30
  simplecov_json_formatter (~> 0.1)
32
31
  simplecov-html (0.12.3)
33
32
  simplecov_json_formatter (0.1.4)
34
- simpleidn (0.2.1)
35
- unf (~> 0.1.4)
36
- unf (0.1.4)
37
- unf_ext
38
- unf (0.1.4-java)
39
- unf_ext (0.0.9.1)
33
+ simpleidn (0.2.3)
40
34
 
41
35
  PLATFORMS
42
36
  java
43
37
  ruby
44
38
 
45
39
  DEPENDENCIES
40
+ base64
46
41
  bundler (~> 2.0)
47
42
  csv
48
43
  i18n
data/README.md CHANGED
@@ -510,7 +510,13 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
510
510
 
511
511
  ## Build Status
512
512
 
513
- ![Build Status](https://github.com/davishmcclurg/json_schemer/workflows/ci/badge.svg)
513
+ ![CI](https://github.com/davishmcclurg/json_schemer/actions/workflows/ci.yml/badge.svg)
514
+ ![JSON Schema Versions](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fruby-json_schemer%2Fsupported_versions.json)<br>
515
+ ![Draft 2020-12](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fruby-json_schemer%2Fcompliance%2Fdraft2020-12.json)
516
+ ![Draft 2019-09](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fruby-json_schemer%2Fcompliance%2Fdraft2019-09.json)
517
+ ![Draft 7](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fruby-json_schemer%2Fcompliance%2Fdraft7.json)
518
+ ![Draft 6](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fruby-json_schemer%2Fcompliance%2Fdraft6.json)
519
+ ![Draft 4](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fruby-json_schemer%2Fcompliance%2Fdraft4.json)
514
520
 
515
521
  ## Contributing
516
522
 
data/json_schemer.gemspec CHANGED
@@ -20,8 +20,9 @@ Gem::Specification.new do |spec|
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.5'
23
+ spec.required_ruby_version = '>= 2.7'
24
24
 
25
+ spec.add_development_dependency "base64"
25
26
  spec.add_development_dependency "bundler", "~> 2.0"
26
27
  spec.add_development_dependency "rake", "~> 13.0"
27
28
  spec.add_development_dependency "minitest", "~> 5.0"
@@ -30,7 +31,6 @@ Gem::Specification.new do |spec|
30
31
  spec.add_development_dependency "i18n"
31
32
  spec.add_development_dependency "i18n-debug"
32
33
 
33
- spec.add_runtime_dependency "base64"
34
34
  spec.add_runtime_dependency "bigdecimal"
35
35
  spec.add_runtime_dependency "hana", "~> 1.3"
36
36
  spec.add_runtime_dependency "regexp_parser", "~> 2.0"
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module JSONSchemer
4
3
  Configuration = Struct.new(
5
4
  :base_uri, :meta_schema, :vocabulary, :format, :formats, :content_encodings, :content_media_types, :keywords,
@@ -2,7 +2,7 @@
2
2
  module JSONSchemer
3
3
  module ContentEncoding
4
4
  BASE64 = proc do |instance|
5
- [true, Base64.strict_decode64(instance)]
5
+ [true, instance.unpack1("m0")]
6
6
  rescue
7
7
  [false, nil]
8
8
  end
@@ -74,7 +74,7 @@ module JSONSchemer
74
74
  IP_REGEX = /\A[\h:.]+\z/.freeze
75
75
  INVALID_QUERY_REGEX = /\s/.freeze
76
76
  IRI_ESCAPE_REGEX = /[^[:ascii:]]/
77
- UUID_REGEX = /\A\h{8}-\h{4}-\h{4}-[89AB]\h{3}-\h{12}\z/i
77
+ UUID_REGEX = /\A\h{8}-\h{4}-\h{4}-\h{4}-\h{12}\z/i
78
78
  NIL_UUID = '00000000-0000-0000-0000-000000000000'
79
79
  BINARY_TO_PERCENT_ENCODED = 256.times.each_with_object({}) do |byte, out|
80
80
  out[-byte.chr(Encoding::BINARY)] = -sprintf('%%%02X', byte)
@@ -191,6 +191,7 @@ module JSONSchemer
191
191
 
192
192
  def insert_property_defaults(context)
193
193
  instance_locations = {}
194
+ instance_locations.compare_by_identity
194
195
 
195
196
  results = [[self, true]]
196
197
  while (result, valid = results.pop)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module JSONSchemer
3
- VERSION = '2.2.0'
3
+ VERSION = '2.3.0'
4
4
  end
data/lib/json_schemer.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- require 'base64'
3
2
  require 'bigdecimal'
4
3
  require 'ipaddr'
5
4
  require 'json'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_schemer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Harsha
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-02 00:00:00.000000000 Z
11
+ date: 2024-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: base64
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -108,20 +122,6 @@ dependencies:
108
122
  - - ">="
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: base64
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bigdecimal
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -261,7 +261,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - ">="
263
263
  - !ruby/object:Gem::Version
264
- version: '2.5'
264
+ version: '2.7'
265
265
  required_rubygems_version: !ruby/object:Gem::Requirement
266
266
  requirements:
267
267
  - - ">="