schemacop 2.4.2 → 2.4.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/LICENSE +1 -1
  4. data/README.md +18 -2
  5. data/VERSION +1 -1
  6. data/doc/Schemacop.html +5 -5
  7. data/doc/Schemacop/ArrayValidator.html +1 -1
  8. data/doc/Schemacop/BooleanValidator.html +1 -1
  9. data/doc/Schemacop/Caster.html +1 -1
  10. data/doc/Schemacop/Collector.html +1 -1
  11. data/doc/Schemacop/Dupper.html +214 -0
  12. data/doc/Schemacop/Exceptions.html +1 -1
  13. data/doc/Schemacop/Exceptions/InvalidSchemaError.html +1 -1
  14. data/doc/Schemacop/Exceptions/ValidationError.html +1 -1
  15. data/doc/Schemacop/FieldNode.html +1 -1
  16. data/doc/Schemacop/FloatValidator.html +1 -1
  17. data/doc/Schemacop/HashValidator.html +10 -6
  18. data/doc/Schemacop/IntegerValidator.html +1 -1
  19. data/doc/Schemacop/NilValidator.html +1 -1
  20. data/doc/Schemacop/Node.html +1 -1
  21. data/doc/Schemacop/NodeResolver.html +1 -1
  22. data/doc/Schemacop/NodeSupportingField.html +1 -1
  23. data/doc/Schemacop/NodeSupportingType.html +1 -1
  24. data/doc/Schemacop/NodeWithBlock.html +1 -1
  25. data/doc/Schemacop/NumberValidator.html +1 -1
  26. data/doc/Schemacop/ObjectValidator.html +1 -1
  27. data/doc/Schemacop/RootNode.html +1 -1
  28. data/doc/Schemacop/Schema.html +8 -6
  29. data/doc/Schemacop/StringValidator.html +1 -1
  30. data/doc/Schemacop/SymbolValidator.html +1 -1
  31. data/doc/ScopedEnv.html +1 -1
  32. data/doc/_index.html +19 -4
  33. data/doc/class_list.html +1 -1
  34. data/doc/file.README.html +19 -4
  35. data/doc/index.html +19 -4
  36. data/doc/method_list.html +93 -85
  37. data/doc/top-level-namespace.html +1 -1
  38. data/lib/schemacop.rb +4 -3
  39. data/lib/schemacop/dupper.rb +19 -0
  40. data/lib/schemacop/field_node.rb +1 -0
  41. data/lib/schemacop/node_supporting_type.rb +6 -6
  42. data/lib/schemacop/schema.rb +2 -1
  43. data/lib/schemacop/validator/hash_validator.rb +5 -1
  44. data/schemacop.gemspec +5 -5
  45. data/test/casting_test.rb +28 -0
  46. data/test/defaults_test.rb +22 -0
  47. data/test/empty_test.rb +14 -0
  48. data/test/validator_hash_test.rb +22 -0
  49. metadata +7 -3
@@ -102,7 +102,7 @@
102
102
  </div>
103
103
 
104
104
  <div id="footer">
105
- Generated on Tue Nov 5 11:16:27 2019 by
105
+ Generated on Thu Jul 2 11:30:34 2020 by
106
106
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
107
107
  0.9.20 (ruby-2.6.2).
108
108
  </div>
@@ -1,8 +1,8 @@
1
1
  module Schemacop
2
2
  DEFAULT_CASTERS = {
3
3
  String => {
4
- Integer => proc { |s| Integer(s) },
5
- Float => proc { |s| Float(s) }
4
+ Integer => proc { |s| s.blank? ? nil : Integer(s, 10) },
5
+ Float => proc { |s| s.blank? ? nil : Float(s) }
6
6
  },
7
7
  Float => {
8
8
  Integer => proc { |f| Integer(f) }
@@ -15,8 +15,8 @@ end
15
15
 
16
16
  require 'set'
17
17
  require 'active_support/core_ext/class/attribute'
18
+ require 'active_support/core_ext/object/blank'
18
19
  require 'active_support/hash_with_indifferent_access'
19
- require 'active_support/core_ext/object/deep_dup'
20
20
 
21
21
  require 'schemacop/scoped_env'
22
22
  require 'schemacop/exceptions'
@@ -30,6 +30,7 @@ require 'schemacop/field_node'
30
30
  require 'schemacop/root_node'
31
31
  require 'schemacop/node_supporting_field'
32
32
  require 'schemacop/caster'
33
+ require 'schemacop/dupper'
33
34
  require 'schemacop/validator/array_validator'
34
35
  require 'schemacop/validator/boolean_validator'
35
36
  require 'schemacop/validator/hash_validator'
@@ -0,0 +1,19 @@
1
+ module Schemacop
2
+ class Dupper
3
+ def self.dup_data(data)
4
+ if data.is_a?(Hash)
5
+ data = data.dup
6
+
7
+ data.each do |key, value|
8
+ data[key] = dup_data(value)
9
+ end
10
+
11
+ return data
12
+ elsif data.is_a?(Array)
13
+ return data.map { |value| dup_data(value) }
14
+ else
15
+ return data
16
+ end
17
+ end
18
+ end
19
+ end
@@ -37,6 +37,7 @@ module Schemacop
37
37
  @types.each do |type|
38
38
  next unless type.option?(:default)
39
39
  default = type.option(:default)
40
+ default = default.call if default.is_a?(Proc)
40
41
  collector.override_value(default)
41
42
  return default, true
42
43
  end
@@ -105,12 +105,12 @@ module Schemacop
105
105
 
106
106
  next unless caster.castable?
107
107
  begin
108
- data = caster.cast
109
- collector.override_value(data)
110
- return data
111
- rescue Exceptions::InvalidSchemaError => e
112
- collector.error e.message
113
- end
108
+ data = caster.cast
109
+ collector.override_value(data)
110
+ return data
111
+ rescue Exceptions::InvalidSchemaError => e
112
+ collector.error e.message
113
+ end
114
114
  end
115
115
 
116
116
  return data
@@ -37,7 +37,8 @@ module Schemacop
37
37
  # @return [Schemacop::Collector] The object that collected errors
38
38
  # throughout the validation.
39
39
  def validate(data)
40
- collector = Collector.new(data.deep_dup)
40
+ dupped_data = Schemacop::Dupper.dup_data(data)
41
+ collector = Collector.new(dupped_data)
41
42
  @root.fields[:root].validate({ root: data }, collector.ignore_next_segment)
42
43
  return collector
43
44
  end
@@ -2,6 +2,8 @@ module Schemacop
2
2
  class HashValidator < NodeSupportingField
3
3
  register symbols: :hash, klasses: Hash
4
4
 
5
+ option :allow_obsolete_keys
6
+
5
7
  def validate(data, collector)
6
8
  super
7
9
 
@@ -21,7 +23,9 @@ module Schemacop
21
23
 
22
24
  obsolete_keys = data_keys - allowed_fields
23
25
 
24
- collector.error "Obsolete keys: #{obsolete_keys.inspect}." if obsolete_keys.any?
26
+ unless option?(:allow_obsolete_keys)
27
+ collector.error "Obsolete keys: #{obsolete_keys.inspect}." if obsolete_keys.any?
28
+ end
25
29
 
26
30
  @fields.values.each do |field|
27
31
  field.validate(data, collector)
@@ -1,20 +1,20 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: schemacop 2.4.2 ruby lib
2
+ # stub: schemacop 2.4.7 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "schemacop".freeze
6
- s.version = "2.4.2"
6
+ s.version = "2.4.7"
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 = "2019-11-05"
12
- s.files = [".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, ".travis.yml".freeze, ".yardopts".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "RUBY_VERSION".freeze, "Rakefile".freeze, "VERSION".freeze, "doc/Schemacop.html".freeze, "doc/Schemacop/ArrayValidator.html".freeze, "doc/Schemacop/BooleanValidator.html".freeze, "doc/Schemacop/Caster.html".freeze, "doc/Schemacop/Collector.html".freeze, "doc/Schemacop/Exceptions.html".freeze, "doc/Schemacop/Exceptions/InvalidSchemaError.html".freeze, "doc/Schemacop/Exceptions/ValidationError.html".freeze, "doc/Schemacop/FieldNode.html".freeze, "doc/Schemacop/FloatValidator.html".freeze, "doc/Schemacop/HashValidator.html".freeze, "doc/Schemacop/IntegerValidator.html".freeze, "doc/Schemacop/NilValidator.html".freeze, "doc/Schemacop/Node.html".freeze, "doc/Schemacop/NodeResolver.html".freeze, "doc/Schemacop/NodeSupportingField.html".freeze, "doc/Schemacop/NodeSupportingType.html".freeze, "doc/Schemacop/NodeWithBlock.html".freeze, "doc/Schemacop/NumberValidator.html".freeze, "doc/Schemacop/ObjectValidator.html".freeze, "doc/Schemacop/RootNode.html".freeze, "doc/Schemacop/Schema.html".freeze, "doc/Schemacop/StringValidator.html".freeze, "doc/Schemacop/SymbolValidator.html".freeze, "doc/ScopedEnv.html".freeze, "doc/_index.html".freeze, "doc/class_list.html".freeze, "doc/css/common.css".freeze, "doc/css/full_list.css".freeze, "doc/css/style.css".freeze, "doc/file.README.html".freeze, "doc/file_list.html".freeze, "doc/frames.html".freeze, "doc/index.html".freeze, "doc/inheritance.graphml".freeze, "doc/inheritance.pdf".freeze, "doc/js/app.js".freeze, "doc/js/full_list.js".freeze, "doc/js/jquery.js".freeze, "doc/method_list.html".freeze, "doc/top-level-namespace.html".freeze, "lib/schemacop.rb".freeze, "lib/schemacop/caster.rb".freeze, "lib/schemacop/collector.rb".freeze, "lib/schemacop/exceptions.rb".freeze, "lib/schemacop/field_node.rb".freeze, "lib/schemacop/node.rb".freeze, "lib/schemacop/node_resolver.rb".freeze, "lib/schemacop/node_supporting_field.rb".freeze, "lib/schemacop/node_supporting_type.rb".freeze, "lib/schemacop/node_with_block.rb".freeze, "lib/schemacop/root_node.rb".freeze, "lib/schemacop/schema.rb".freeze, "lib/schemacop/scoped_env.rb".freeze, "lib/schemacop/validator/array_validator.rb".freeze, "lib/schemacop/validator/boolean_validator.rb".freeze, "lib/schemacop/validator/float_validator.rb".freeze, "lib/schemacop/validator/hash_validator.rb".freeze, "lib/schemacop/validator/integer_validator.rb".freeze, "lib/schemacop/validator/nil_validator.rb".freeze, "lib/schemacop/validator/number_validator.rb".freeze, "lib/schemacop/validator/object_validator.rb".freeze, "lib/schemacop/validator/string_validator.rb".freeze, "lib/schemacop/validator/symbol_validator.rb".freeze, "schemacop.gemspec".freeze, "test/casting_test.rb".freeze, "test/collector_test.rb".freeze, "test/custom_check_test.rb".freeze, "test/custom_if_test.rb".freeze, "test/defaults_test.rb".freeze, "test/nil_dis_allow_test.rb".freeze, "test/node_resolver_test.rb".freeze, "test/short_forms_test.rb".freeze, "test/test_helper.rb".freeze, "test/types_test.rb".freeze, "test/validator_array_test.rb".freeze, "test/validator_boolean_test.rb".freeze, "test/validator_float_test.rb".freeze, "test/validator_hash_test.rb".freeze, "test/validator_integer_test.rb".freeze, "test/validator_nil_test.rb".freeze, "test/validator_number_test.rb".freeze, "test/validator_object_test.rb".freeze, "test/validator_string_test.rb".freeze, "test/validator_symbol_test.rb".freeze]
11
+ s.date = "2020-07-02"
12
+ s.files = [".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, ".travis.yml".freeze, ".yardopts".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "RUBY_VERSION".freeze, "Rakefile".freeze, "VERSION".freeze, "doc/Schemacop.html".freeze, "doc/Schemacop/ArrayValidator.html".freeze, "doc/Schemacop/BooleanValidator.html".freeze, "doc/Schemacop/Caster.html".freeze, "doc/Schemacop/Collector.html".freeze, "doc/Schemacop/Dupper.html".freeze, "doc/Schemacop/Exceptions.html".freeze, "doc/Schemacop/Exceptions/InvalidSchemaError.html".freeze, "doc/Schemacop/Exceptions/ValidationError.html".freeze, "doc/Schemacop/FieldNode.html".freeze, "doc/Schemacop/FloatValidator.html".freeze, "doc/Schemacop/HashValidator.html".freeze, "doc/Schemacop/IntegerValidator.html".freeze, "doc/Schemacop/NilValidator.html".freeze, "doc/Schemacop/Node.html".freeze, "doc/Schemacop/NodeResolver.html".freeze, "doc/Schemacop/NodeSupportingField.html".freeze, "doc/Schemacop/NodeSupportingType.html".freeze, "doc/Schemacop/NodeWithBlock.html".freeze, "doc/Schemacop/NumberValidator.html".freeze, "doc/Schemacop/ObjectValidator.html".freeze, "doc/Schemacop/RootNode.html".freeze, "doc/Schemacop/Schema.html".freeze, "doc/Schemacop/StringValidator.html".freeze, "doc/Schemacop/SymbolValidator.html".freeze, "doc/ScopedEnv.html".freeze, "doc/_index.html".freeze, "doc/class_list.html".freeze, "doc/css/common.css".freeze, "doc/css/full_list.css".freeze, "doc/css/style.css".freeze, "doc/file.README.html".freeze, "doc/file_list.html".freeze, "doc/frames.html".freeze, "doc/index.html".freeze, "doc/inheritance.graphml".freeze, "doc/inheritance.pdf".freeze, "doc/js/app.js".freeze, "doc/js/full_list.js".freeze, "doc/js/jquery.js".freeze, "doc/method_list.html".freeze, "doc/top-level-namespace.html".freeze, "lib/schemacop.rb".freeze, "lib/schemacop/caster.rb".freeze, "lib/schemacop/collector.rb".freeze, "lib/schemacop/dupper.rb".freeze, "lib/schemacop/exceptions.rb".freeze, "lib/schemacop/field_node.rb".freeze, "lib/schemacop/node.rb".freeze, "lib/schemacop/node_resolver.rb".freeze, "lib/schemacop/node_supporting_field.rb".freeze, "lib/schemacop/node_supporting_type.rb".freeze, "lib/schemacop/node_with_block.rb".freeze, "lib/schemacop/root_node.rb".freeze, "lib/schemacop/schema.rb".freeze, "lib/schemacop/scoped_env.rb".freeze, "lib/schemacop/validator/array_validator.rb".freeze, "lib/schemacop/validator/boolean_validator.rb".freeze, "lib/schemacop/validator/float_validator.rb".freeze, "lib/schemacop/validator/hash_validator.rb".freeze, "lib/schemacop/validator/integer_validator.rb".freeze, "lib/schemacop/validator/nil_validator.rb".freeze, "lib/schemacop/validator/number_validator.rb".freeze, "lib/schemacop/validator/object_validator.rb".freeze, "lib/schemacop/validator/string_validator.rb".freeze, "lib/schemacop/validator/symbol_validator.rb".freeze, "schemacop.gemspec".freeze, "test/casting_test.rb".freeze, "test/collector_test.rb".freeze, "test/custom_check_test.rb".freeze, "test/custom_if_test.rb".freeze, "test/defaults_test.rb".freeze, "test/empty_test.rb".freeze, "test/nil_dis_allow_test.rb".freeze, "test/node_resolver_test.rb".freeze, "test/short_forms_test.rb".freeze, "test/test_helper.rb".freeze, "test/types_test.rb".freeze, "test/validator_array_test.rb".freeze, "test/validator_boolean_test.rb".freeze, "test/validator_float_test.rb".freeze, "test/validator_hash_test.rb".freeze, "test/validator_integer_test.rb".freeze, "test/validator_nil_test.rb".freeze, "test/validator_number_test.rb".freeze, "test/validator_object_test.rb".freeze, "test/validator_string_test.rb".freeze, "test/validator_symbol_test.rb".freeze]
13
13
  s.homepage = "https://github.com/sitrox/schemacop".freeze
14
14
  s.licenses = ["MIT".freeze]
15
15
  s.rubygems_version = "3.0.3".freeze
16
16
  s.summary = "Schemacop validates ruby structures consisting of nested hashes and arrays against simple schema definitions.".freeze
17
- s.test_files = ["test/casting_test.rb".freeze, "test/collector_test.rb".freeze, "test/custom_check_test.rb".freeze, "test/custom_if_test.rb".freeze, "test/defaults_test.rb".freeze, "test/nil_dis_allow_test.rb".freeze, "test/node_resolver_test.rb".freeze, "test/short_forms_test.rb".freeze, "test/test_helper.rb".freeze, "test/types_test.rb".freeze, "test/validator_array_test.rb".freeze, "test/validator_boolean_test.rb".freeze, "test/validator_float_test.rb".freeze, "test/validator_hash_test.rb".freeze, "test/validator_integer_test.rb".freeze, "test/validator_nil_test.rb".freeze, "test/validator_number_test.rb".freeze, "test/validator_object_test.rb".freeze, "test/validator_string_test.rb".freeze, "test/validator_symbol_test.rb".freeze]
17
+ s.test_files = ["test/casting_test.rb".freeze, "test/collector_test.rb".freeze, "test/custom_check_test.rb".freeze, "test/custom_if_test.rb".freeze, "test/defaults_test.rb".freeze, "test/empty_test.rb".freeze, "test/nil_dis_allow_test.rb".freeze, "test/node_resolver_test.rb".freeze, "test/short_forms_test.rb".freeze, "test/test_helper.rb".freeze, "test/types_test.rb".freeze, "test/validator_array_test.rb".freeze, "test/validator_boolean_test.rb".freeze, "test/validator_float_test.rb".freeze, "test/validator_hash_test.rb".freeze, "test/validator_integer_test.rb".freeze, "test/validator_nil_test.rb".freeze, "test/validator_number_test.rb".freeze, "test/validator_object_test.rb".freeze, "test/validator_string_test.rb".freeze, "test/validator_symbol_test.rb".freeze]
18
18
 
19
19
  if s.respond_to? :specification_version then
20
20
  s.specification_version = 4
@@ -86,5 +86,33 @@ module Schemacop
86
86
 
87
87
  assert_equal 42, s.validate!('42')
88
88
  end
89
+
90
+ def test_decimal_basis_castings
91
+ s = Schema.new do
92
+ type :integer, cast: [String]
93
+ end
94
+
95
+ assert_equal 1, s.validate!('01')
96
+ assert_equal 8, s.validate!('08')
97
+ assert_equal 11, s.validate!('011')
98
+ end
99
+
100
+ def test_string_to_nil_castings
101
+ s = Schema.new do
102
+ opt :int_field, :integer, cast: [String]
103
+ opt :float_field, :float, cast: [String]
104
+ end
105
+
106
+ expected_int = { int_field: nil }
107
+ expected_float = { float_field: nil }
108
+
109
+ assert_equal expected_int, s.validate!(int_field: nil)
110
+ assert_equal expected_int, s.validate!(int_field: "")
111
+ assert_equal expected_int, s.validate!(int_field: " ")
112
+
113
+ assert_equal expected_float, s.validate!(float_field: nil)
114
+ assert_equal expected_float, s.validate!(float_field: "")
115
+ assert_equal expected_float, s.validate!(float_field: " ")
116
+ end
89
117
  end
90
118
  end
@@ -58,6 +58,28 @@ module Schemacop
58
58
  assert_equal({ foo: [{ bar: 42 }] }, output)
59
59
  end
60
60
 
61
+ def test_proc
62
+ s = Schema.new do
63
+ opt :year, :integer, default: ->() { Time.now.year }
64
+ end
65
+
66
+ input = {}
67
+ output = s.validate!(input)
68
+ assert_equal({ year: Time.now.year }, output)
69
+ end
70
+
71
+ def test_nested_proc
72
+ myproc = proc { 42 }
73
+
74
+ s = Schema.new do
75
+ opt :myproc, Proc, default: ->() { myproc }
76
+ end
77
+
78
+ input = {}
79
+ output = s.validate!(input)
80
+ assert_equal({ myproc: myproc }, output)
81
+ end
82
+
61
83
  def test_invalid_default
62
84
  s = Schema.new :integer, default: '42'
63
85
 
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ module Schemacop
4
+ class EmptyTest < Minitest::Test
5
+ def test_empty_hash
6
+ schema = Schema.new do
7
+ type Hash
8
+ end
9
+
10
+ assert_nothing_raised { schema.validate!({}) }
11
+ assert_verr { schema.validate!(foo: :bar) }
12
+ end
13
+ end
14
+ end
@@ -21,6 +21,28 @@ module Schemacop
21
21
  assert_verr { s.validate!(one: 3, three: true) }
22
22
  end
23
23
 
24
+ def test_allow_obsolete_keys
25
+ s = Schema.new do
26
+ type :hash, allow_obsolete_keys: true
27
+ end
28
+
29
+ assert_nothing_raised { s.validate!(foo: :bar) }
30
+ assert_equal({ foo: { bar: :baz } }, s.validate!(foo: { bar: :baz }))
31
+
32
+ assert_verr { s.validate!(3) }
33
+ end
34
+
35
+ def test_allow_obsolete_keys_with_substructore
36
+ s = Schema.new do
37
+ type :hash, allow_obsolete_keys: true do
38
+ req :foo
39
+ end
40
+ end
41
+
42
+ assert_nothing_raised { s.validate!(foo: :bar, bar: :baz) }
43
+ assert_verr { s.validate!(bar: :baz) }
44
+ end
45
+
24
46
  def test_nested
25
47
  s = Schema.new do
26
48
  type :hash do
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: 2.4.2
4
+ version: 2.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-05 00:00:00.000000000 Z
11
+ date: 2020-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -187,6 +187,7 @@ files:
187
187
  - doc/Schemacop/BooleanValidator.html
188
188
  - doc/Schemacop/Caster.html
189
189
  - doc/Schemacop/Collector.html
190
+ - doc/Schemacop/Dupper.html
190
191
  - doc/Schemacop/Exceptions.html
191
192
  - doc/Schemacop/Exceptions/InvalidSchemaError.html
192
193
  - doc/Schemacop/Exceptions/ValidationError.html
@@ -226,6 +227,7 @@ files:
226
227
  - lib/schemacop.rb
227
228
  - lib/schemacop/caster.rb
228
229
  - lib/schemacop/collector.rb
230
+ - lib/schemacop/dupper.rb
229
231
  - lib/schemacop/exceptions.rb
230
232
  - lib/schemacop/field_node.rb
231
233
  - lib/schemacop/node.rb
@@ -252,6 +254,7 @@ files:
252
254
  - test/custom_check_test.rb
253
255
  - test/custom_if_test.rb
254
256
  - test/defaults_test.rb
257
+ - test/empty_test.rb
255
258
  - test/nil_dis_allow_test.rb
256
259
  - test/node_resolver_test.rb
257
260
  - test/short_forms_test.rb
@@ -286,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
286
289
  - !ruby/object:Gem::Version
287
290
  version: '0'
288
291
  requirements: []
289
- rubygems_version: 3.0.3
292
+ rubygems_version: 3.1.2
290
293
  signing_key:
291
294
  specification_version: 4
292
295
  summary: Schemacop validates ruby structures consisting of nested hashes and arrays
@@ -297,6 +300,7 @@ test_files:
297
300
  - test/custom_check_test.rb
298
301
  - test/custom_if_test.rb
299
302
  - test/defaults_test.rb
303
+ - test/empty_test.rb
300
304
  - test/nil_dis_allow_test.rb
301
305
  - test/node_resolver_test.rb
302
306
  - test/short_forms_test.rb