schemacop 3.0.29 → 3.0.30

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: 0e7d7e77045f4130fe9e9863f3b6fddcbf5e847e4d461d2d40b13c472fecb40c
4
- data.tar.gz: 55d594ce2ad63d13908e8d6cb97c4ae258b877c5b89d1ef52b64b345e4a83bf8
3
+ metadata.gz: 2e6f1c5132b3e61600a15096a291cf552059484a299bba1db9ebae0b0e392e94
4
+ data.tar.gz: bf1822c9ab0f19d04779c9822607d0a9d918740b7c1f1980811d03645ccc7614
5
5
  SHA512:
6
- metadata.gz: 5ea7238bd691e8ab2af17ae36e24fd10e3ad5033c2a70fd904ec253e6b57b4ab2b9a819781a5403a2e1d93bc138e2de82d8c42fe0ed730c10a2597fe2df85a3f
7
- data.tar.gz: 84cff469cae0b9eefa9ce2a6675d301cc381082e694352818f5852a74296338957b172cf39e9420b49924696c6eab16f600388c89c7b816b187dfb22c3d5843d
6
+ metadata.gz: 83788091077f1fed37a946fb4d00b676d9f5ad7cd833134ece88fb017fadb9acc41b0c5be4e3b8dc271c1a0ab565e35ec1e7b3cf8aa02e865264bc3226d2075a
7
+ data.tar.gz: 1bc42d01e5fa2414c6ff758c808aa823f3e47fde8cf95253d0631e24e257071f1a09ecf47359f6428ae2aad98505511d0cdeb5e923bceb4befa97c5d8b992f8b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change log
2
2
 
3
+ ## 3.0.30 (2024-12-11)
4
+
5
+ * Fix `used_external_schemas` sometimes returning an incomplete list
6
+
7
+ Internal reference: `#132006`.
8
+
3
9
  ## 3.0.29 (2024-06-06)
4
10
 
5
11
  * Add option `parse_json` to `hash` and `array` V3 nodes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.29
1
+ 3.0.30
@@ -145,7 +145,7 @@ module Schemacop
145
145
  end
146
146
 
147
147
  def children
148
- (@items + [@cont_item]).compact
148
+ (@items + [@cont_item, list_item]).compact
149
149
  end
150
150
 
151
151
  def cast(value)
@@ -62,8 +62,10 @@ module Schemacop
62
62
  {}
63
63
  end
64
64
 
65
- def used_external_schemas
66
- children.map(&:used_external_schemas).flatten.uniq
65
+ def used_external_schemas(encountered_nodes = Set.new)
66
+ return [] if encountered_nodes.include?(self)
67
+
68
+ return children.map { |c| c.used_external_schemas(encountered_nodes) }.flatten.uniq
67
69
  end
68
70
 
69
71
  def children
@@ -39,8 +39,12 @@ module Schemacop
39
39
  return target.cast(data)
40
40
  end
41
41
 
42
- def used_external_schemas
43
- target_children_schema = target.used_external_schemas
42
+ def used_external_schemas(encountered_nodes = Set.new)
43
+ if encountered_nodes.include?(self)
44
+ return []
45
+ end
46
+
47
+ target_children_schema = target.used_external_schemas(encountered_nodes + [self])
44
48
 
45
49
  if schemas.include?(@path)
46
50
  return target_children_schema
data/schemacop.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: schemacop 3.0.29 ruby lib
2
+ # stub: schemacop 3.0.30 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "schemacop".freeze
6
- s.version = "3.0.29"
6
+ s.version = "3.0.30"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Sitrox".freeze]
11
- s.date = "2024-06-06"
11
+ s.date = "2024-12-11"
12
12
  s.files = [".github/workflows/ruby.yml".freeze, ".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, ".yardopts".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "README_V2.md".freeze, "README_V3.md".freeze, "RUBY_VERSION".freeze, "Rakefile".freeze, "VERSION".freeze, "lib/schemacop.rb".freeze, "lib/schemacop/base_schema.rb".freeze, "lib/schemacop/exceptions.rb".freeze, "lib/schemacop/railtie.rb".freeze, "lib/schemacop/schema.rb".freeze, "lib/schemacop/schema2.rb".freeze, "lib/schemacop/schema3.rb".freeze, "lib/schemacop/scoped_env.rb".freeze, "lib/schemacop/v2.rb".freeze, "lib/schemacop/v2/caster.rb".freeze, "lib/schemacop/v2/collector.rb".freeze, "lib/schemacop/v2/dupper.rb".freeze, "lib/schemacop/v2/field_node.rb".freeze, "lib/schemacop/v2/node.rb".freeze, "lib/schemacop/v2/node_resolver.rb".freeze, "lib/schemacop/v2/node_supporting_field.rb".freeze, "lib/schemacop/v2/node_supporting_type.rb".freeze, "lib/schemacop/v2/node_with_block.rb".freeze, "lib/schemacop/v2/validator/array_validator.rb".freeze, "lib/schemacop/v2/validator/boolean_validator.rb".freeze, "lib/schemacop/v2/validator/float_validator.rb".freeze, "lib/schemacop/v2/validator/hash_validator.rb".freeze, "lib/schemacop/v2/validator/integer_validator.rb".freeze, "lib/schemacop/v2/validator/nil_validator.rb".freeze, "lib/schemacop/v2/validator/number_validator.rb".freeze, "lib/schemacop/v2/validator/object_validator.rb".freeze, "lib/schemacop/v2/validator/string_validator.rb".freeze, "lib/schemacop/v2/validator/symbol_validator.rb".freeze, "lib/schemacop/v3.rb".freeze, "lib/schemacop/v3/all_of_node.rb".freeze, "lib/schemacop/v3/any_of_node.rb".freeze, "lib/schemacop/v3/array_node.rb".freeze, "lib/schemacop/v3/boolean_node.rb".freeze, "lib/schemacop/v3/combination_node.rb".freeze, "lib/schemacop/v3/context.rb".freeze, "lib/schemacop/v3/dsl_scope.rb".freeze, "lib/schemacop/v3/global_context.rb".freeze, "lib/schemacop/v3/hash_node.rb".freeze, "lib/schemacop/v3/integer_node.rb".freeze, "lib/schemacop/v3/is_not_node.rb".freeze, "lib/schemacop/v3/node.rb".freeze, "lib/schemacop/v3/node_registry.rb".freeze, "lib/schemacop/v3/number_node.rb".freeze, "lib/schemacop/v3/numeric_node.rb".freeze, "lib/schemacop/v3/object_node.rb".freeze, "lib/schemacop/v3/one_of_node.rb".freeze, "lib/schemacop/v3/reference_node.rb".freeze, "lib/schemacop/v3/result.rb".freeze, "lib/schemacop/v3/string_node.rb".freeze, "lib/schemacop/v3/symbol_node.rb".freeze, "schemacop.gemspec".freeze, "test/lib/test_helper.rb".freeze, "test/schemas/nested/group.rb".freeze, "test/schemas/user.rb".freeze, "test/unit/schemacop/v2/casting_test.rb".freeze, "test/unit/schemacop/v2/collector_test.rb".freeze, "test/unit/schemacop/v2/custom_check_test.rb".freeze, "test/unit/schemacop/v2/custom_if_test.rb".freeze, "test/unit/schemacop/v2/defaults_test.rb".freeze, "test/unit/schemacop/v2/empty_test.rb".freeze, "test/unit/schemacop/v2/nil_dis_allow_test.rb".freeze, "test/unit/schemacop/v2/node_resolver_test.rb".freeze, "test/unit/schemacop/v2/short_forms_test.rb".freeze, "test/unit/schemacop/v2/types_test.rb".freeze, "test/unit/schemacop/v2/validator_array_test.rb".freeze, "test/unit/schemacop/v2/validator_boolean_test.rb".freeze, "test/unit/schemacop/v2/validator_float_test.rb".freeze, "test/unit/schemacop/v2/validator_hash_test.rb".freeze, "test/unit/schemacop/v2/validator_integer_test.rb".freeze, "test/unit/schemacop/v2/validator_nil_test.rb".freeze, "test/unit/schemacop/v2/validator_number_test.rb".freeze, "test/unit/schemacop/v2/validator_object_test.rb".freeze, "test/unit/schemacop/v2/validator_string_test.rb".freeze, "test/unit/schemacop/v2/validator_symbol_test.rb".freeze, "test/unit/schemacop/v3/all_of_node_test.rb".freeze, "test/unit/schemacop/v3/any_of_node_test.rb".freeze, "test/unit/schemacop/v3/array_node_test.rb".freeze, "test/unit/schemacop/v3/boolean_node_test.rb".freeze, "test/unit/schemacop/v3/global_context_test.rb".freeze, "test/unit/schemacop/v3/hash_node_test.rb".freeze, "test/unit/schemacop/v3/integer_node_test.rb".freeze, "test/unit/schemacop/v3/is_not_node_test.rb".freeze, "test/unit/schemacop/v3/node_test.rb".freeze, "test/unit/schemacop/v3/number_node_test.rb".freeze, "test/unit/schemacop/v3/object_node_test.rb".freeze, "test/unit/schemacop/v3/one_of_node_test.rb".freeze, "test/unit/schemacop/v3/reference_node_test.rb".freeze, "test/unit/schemacop/v3/string_node_test.rb".freeze, "test/unit/schemacop/v3/symbol_node_test.rb".freeze]
13
13
  s.homepage = "https://github.com/sitrox/schemacop".freeze
14
14
  s.licenses = ["MIT".freeze]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schemacop
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.29
4
+ version: 3.0.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-06 00:00:00.000000000 Z
11
+ date: 2024-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
168
  requirements: []
169
- rubygems_version: 3.5.4
169
+ rubygems_version: 3.5.23
170
170
  signing_key:
171
171
  specification_version: 4
172
172
  summary: Schemacop validates ruby structures consisting of nested hashes and arrays