json_schemer 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="