nxt_schema 0.1.2 → 1.0.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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/Gemfile +0 -1
  4. data/Gemfile.lock +32 -29
  5. data/README.md +186 -116
  6. data/lib/nxt_schema.rb +56 -49
  7. data/lib/nxt_schema/{node.rb → application.rb} +1 -1
  8. data/lib/nxt_schema/application/any_of.rb +40 -0
  9. data/lib/nxt_schema/application/base.rb +116 -0
  10. data/lib/nxt_schema/application/collection.rb +57 -0
  11. data/lib/nxt_schema/application/error_store.rb +57 -0
  12. data/lib/nxt_schema/application/errors/schema_error.rb +15 -0
  13. data/lib/nxt_schema/application/errors/validation_error.rb +15 -0
  14. data/lib/nxt_schema/application/leaf.rb +15 -0
  15. data/lib/nxt_schema/application/schema.rb +114 -0
  16. data/lib/nxt_schema/callable.rb +21 -55
  17. data/lib/nxt_schema/dsl.rb +41 -31
  18. data/lib/nxt_schema/error.rb +4 -0
  19. data/lib/nxt_schema/errors/invalid.rb +16 -0
  20. data/lib/nxt_schema/errors/{error.rb → invalid_options.rb} +1 -2
  21. data/lib/nxt_schema/missing_input.rb +9 -0
  22. data/lib/nxt_schema/node/any_of.rb +51 -0
  23. data/lib/nxt_schema/node/base.rb +135 -233
  24. data/lib/nxt_schema/node/collection.rb +10 -65
  25. data/lib/nxt_schema/node/has_sub_nodes.rb +81 -0
  26. data/lib/nxt_schema/node/leaf.rb +1 -31
  27. data/lib/nxt_schema/node/maybe_evaluator.rb +15 -10
  28. data/lib/nxt_schema/node/on_evaluator.rb +25 -0
  29. data/lib/nxt_schema/node/schema.rb +8 -134
  30. data/lib/nxt_schema/node/sub_nodes.rb +22 -0
  31. data/lib/nxt_schema/node/type_system_resolver.rb +22 -0
  32. data/lib/nxt_schema/types.rb +1 -1
  33. data/lib/nxt_schema/validators/attribute.rb +3 -3
  34. data/lib/nxt_schema/validators/{equality.rb → equal_to.rb} +5 -5
  35. data/lib/nxt_schema/validators/error_messages.rb +42 -0
  36. data/lib/nxt_schema/{error_messages → validators/error_messages}/en.yaml +3 -3
  37. data/lib/nxt_schema/validators/{excluded.rb → excluded_in.rb} +4 -4
  38. data/lib/nxt_schema/validators/excludes.rb +3 -3
  39. data/lib/nxt_schema/validators/greater_than.rb +3 -3
  40. data/lib/nxt_schema/validators/greater_than_or_equal.rb +3 -3
  41. data/lib/nxt_schema/validators/{included.rb → included_in.rb} +4 -4
  42. data/lib/nxt_schema/validators/includes.rb +3 -3
  43. data/lib/nxt_schema/validators/less_than.rb +3 -3
  44. data/lib/nxt_schema/validators/less_than_or_equal.rb +3 -3
  45. data/lib/nxt_schema/validators/optional_node.rb +13 -8
  46. data/lib/nxt_schema/validators/pattern.rb +3 -3
  47. data/lib/nxt_schema/validators/query.rb +4 -4
  48. data/lib/nxt_schema/validators/registry.rb +1 -7
  49. data/lib/nxt_schema/{node → validators}/validate_with_proxy.rb +8 -8
  50. data/lib/nxt_schema/validators/validator.rb +2 -2
  51. data/lib/nxt_schema/version.rb +1 -1
  52. data/nxt_schema.gemspec +1 -0
  53. metadata +42 -22
  54. data/lib/nxt_schema/callable_or_value.rb +0 -72
  55. data/lib/nxt_schema/error_messages.rb +0 -40
  56. data/lib/nxt_schema/errors.rb +0 -4
  57. data/lib/nxt_schema/errors/invalid_options_error.rb +0 -5
  58. data/lib/nxt_schema/errors/schema_not_applied_error.rb +0 -5
  59. data/lib/nxt_schema/node/constructor.rb +0 -9
  60. data/lib/nxt_schema/node/default_value_evaluator.rb +0 -20
  61. data/lib/nxt_schema/node/error.rb +0 -13
  62. data/lib/nxt_schema/node/has_subnodes.rb +0 -97
  63. data/lib/nxt_schema/node/template_store.rb +0 -15
  64. data/lib/nxt_schema/registry.rb +0 -85
  65. data/lib/nxt_schema/undefined.rb +0 -7
@@ -0,0 +1,22 @@
1
+ module NxtSchema
2
+ module Node
3
+ class TypeSystemResolver
4
+ include NxtInit
5
+ attr_init :node
6
+
7
+ delegate_missing_to :node
8
+
9
+ def call
10
+ type_system = options.fetch(:type_system) { parent_node&.type_system }
11
+
12
+ if type_system.is_a?(Module)
13
+ type_system
14
+ elsif type_system.is_a?(Symbol) || type_system.is_a?(String)
15
+ "NxtSchema::Types::#{type_system.to_s.classify}".constantize
16
+ else
17
+ NxtSchema::Types
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -3,7 +3,7 @@ module NxtSchema
3
3
  include Dry.Types()
4
4
 
5
5
  StrippedString = Strict::String.constructor(->(string) { string&.strip })
6
- StrippedNonBlankString = StrippedString.constrained(min_size: 1)
6
+ LengthyStrippedString = StrippedString.constrained(min_size: 1)
7
7
  Enums = -> (*values) { Strict::String.enum(*values) } # Use as NxtSchema::Types::Enums[*ROLES]
8
8
  SymbolizedEnums = -> (*values) { Coercible::Symbol.enum(*values) } # Use as NxtSchema::Types::SymboleEnums[*ROLES]
9
9
  end
@@ -12,15 +12,15 @@ module NxtSchema
12
12
  # Query any attribute on a value with validator(:attribute, :size, ->(s) { s < 7 })
13
13
 
14
14
  def build
15
- lambda do |node, value|
15
+ lambda do |application, value|
16
16
  raise ArgumentError, "#{value} does not respond to query: #{method}" unless value.respond_to?(method)
17
17
 
18
18
  if expectation.call(value.send(method))
19
19
  true
20
20
  else
21
- node.add_error(
21
+ application.add_error(
22
22
  translate_error(
23
- node.locale,
23
+ application.locale,
24
24
  attribute: value,
25
25
  attribute_name: method,
26
26
  value: value.send(method)
@@ -5,22 +5,22 @@ module NxtSchema
5
5
  @expectation = expectation
6
6
  end
7
7
 
8
- register_as :equality, :eql
8
+ register_as :equal_to, :eql
9
9
  attr_reader :expectation
10
10
 
11
11
  # Query for equality validator(:equality, 3)
12
12
  # Query for equality validator(:eql, -> { 3 * 3 * 60 })
13
13
 
14
14
  def build
15
- lambda do |node, value|
16
- expected_value = expectation.respond_to?(:call) ? Callable.new(expectation).call(node, value) : expectation
15
+ lambda do |application, value|
16
+ expected_value = Callable.new(expectation, nil, value).call
17
17
 
18
18
  if value == expected_value
19
19
  true
20
20
  else
21
- node.add_error(
21
+ application.add_error(
22
22
  translate_error(
23
- node.locale,
23
+ application.locale,
24
24
  actual: value,
25
25
  expected: expected_value
26
26
  )
@@ -0,0 +1,42 @@
1
+ module NxtSchema
2
+ module Validators
3
+ class ErrorMessages
4
+ class << self
5
+ def values
6
+ @values ||= {}
7
+ end
8
+
9
+ def values=(value)
10
+ @values = value
11
+ end
12
+
13
+ def load(paths = files)
14
+ Array(paths).each do |path|
15
+ new_values = YAML.load(ERB.new(File.read(path)).result).with_indifferent_access
16
+ self.values = values.deep_merge!(new_values)
17
+ end
18
+ end
19
+
20
+ def resolve(locale, key, **options)
21
+ message = begin
22
+ values.fetch(locale).fetch(key)
23
+ rescue KeyError
24
+ raise "Could not resolve error message for #{locale}->#{key}"
25
+ end
26
+
27
+ message % options
28
+ end
29
+
30
+ def files
31
+ @files ||= begin
32
+ files = Dir.entries(File.expand_path('../error_messages/', __FILE__)).map do |filename|
33
+ File.expand_path("../error_messages/#{filename}", __FILE__)
34
+ end
35
+
36
+ files.select { |f| !File.directory? f }
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -2,11 +2,11 @@ en:
2
2
  required_key_missing: "Required key :%{key} is missing"
3
3
  additional_keys_detected: "Additional keys %{keys} not allowed"
4
4
  attribute: "%{attribute} has invalid %{attribute_name} attribute of %{value}"
5
- equality: "%{actual} does not equal %{expected}"
5
+ equal_to: "%{actual} does not equal %{expected}"
6
6
  excludes: "%{value} cannot contain %{target}"
7
7
  includes: "%{value} must include %{target}"
8
- excluded: "%{value} must be excluded in %{target}"
9
- included: "%{value} must be included in %{target}"
8
+ excluded_in: "%{value} must be excluded in %{target}"
9
+ included_in: "%{value} must be included in %{target}"
10
10
  greater_than: "%{value} must be greater than %{threshold}"
11
11
  greater_than_or_equal: "%{value} must be greater than or equal to %{threshold}"
12
12
  less_than: "%{value} must be less than %{threshold}"
@@ -5,16 +5,16 @@ module NxtSchema
5
5
  @target = target
6
6
  end
7
7
 
8
- register_as :excluded
8
+ register_as :excluded_in
9
9
  attr_reader :target
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if target.exclude?(value)
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, target: target, value: value)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, target: target, value: value)
17
+ application.add_error(message)
18
18
  end
19
19
  end
20
20
  end
@@ -9,12 +9,12 @@ module NxtSchema
9
9
  attr_reader :target
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if value.exclude?(target)
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, target: target, value: value)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, target: target, value: value)
17
+ application.add_error(message)
18
18
  end
19
19
  end
20
20
  end
@@ -9,12 +9,12 @@ module NxtSchema
9
9
  attr_reader :threshold
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if value > threshold
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, value: value, threshold: threshold)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, value: value, threshold: threshold)
17
+ application.add_error(message)
18
18
  end
19
19
  end
20
20
  end
@@ -9,12 +9,12 @@ module NxtSchema
9
9
  attr_reader :threshold
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if value >= threshold
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, value: value, threshold: threshold)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, value: value, threshold: threshold)
17
+ application.add_error(message)
18
18
  end
19
19
  end
20
20
  end
@@ -5,16 +5,16 @@ module NxtSchema
5
5
  @target = target
6
6
  end
7
7
 
8
- register_as :included
8
+ register_as :included_in
9
9
  attr_reader :target
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if target.include?(value)
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, value: value, target: target)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, value: value, target: target)
17
+ application.add_error(message)
18
18
  end
19
19
  end
20
20
  end
@@ -9,12 +9,12 @@ module NxtSchema
9
9
  attr_reader :target
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if value.include?(target)
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, value: value, target: target)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, value: value, target: target)
17
+ application.add_error(message)
18
18
  end
19
19
  end
20
20
  end
@@ -9,12 +9,12 @@ module NxtSchema
9
9
  attr_reader :threshold
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if value < threshold
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, value: value, threshold: threshold)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, value: value, threshold: threshold)
17
+ application.add_error(message)
18
18
  end
19
19
  end
20
20
  end
@@ -9,12 +9,12 @@ module NxtSchema
9
9
  attr_reader :threshold
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if value <= threshold
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, value: value, threshold: threshold)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, value: value, threshold: threshold)
17
+ application.add_error(message)
18
18
  end
19
19
  end
20
20
  end
@@ -10,15 +10,20 @@ module NxtSchema
10
10
  attr_reader :conditional, :missing_key
11
11
 
12
12
  def build
13
- lambda do |node, value|
14
- args = [node, value]
13
+ lambda do |application, value|
14
+ args = [application, value]
15
15
 
16
- if conditional.call(*args.take(conditional.arity))
17
- true
18
- else
19
- message = ErrorMessages.resolve(node.locale, :required_key_missing, key: missing_key, target: node.value)
20
- node.add_error(message)
21
- end
16
+ return if conditional.call(*args.take(conditional.arity))
17
+ return if application.send(:keys).include?(missing_key.to_sym)
18
+
19
+ message = ErrorMessages.resolve(
20
+ application.locale,
21
+ :required_key_missing,
22
+ key: missing_key,
23
+ target: application.input
24
+ )
25
+
26
+ application.add_error(message)
22
27
  end
23
28
  end
24
29
  end
@@ -9,12 +9,12 @@ module NxtSchema
9
9
  attr_reader :pattern
10
10
 
11
11
  def build
12
- lambda do |node, value|
12
+ lambda do |application, value|
13
13
  if value.match(pattern)
14
14
  true
15
15
  else
16
- message = translate_error(node.locale, value: value, pattern: pattern)
17
- node.add_error(message)
16
+ message = translate_error(application.locale, value: value, pattern: pattern)
17
+ application.add_error(message)
18
18
  false
19
19
  end
20
20
  end
@@ -8,18 +8,18 @@ module NxtSchema
8
8
  register_as :query
9
9
  attr_reader :method
10
10
 
11
- # Query a boolean method on you value => node(:test, :String).validate(:query, :good_enough?)
11
+ # Query a boolean method on you value => application(:test, :String).validate(:query, :good_enough?)
12
12
  # => Would be valid if value.good_enough? is truthy
13
13
 
14
14
  def build
15
- lambda do |node, value|
15
+ lambda do |application, value|
16
16
  raise ArgumentError, "#{value} does not respond to query: #{method}" unless value.respond_to?(method)
17
17
 
18
18
  if value.send(method)
19
19
  true
20
20
  else
21
- message = translate_error(node.locale, value: value, actual: value.send(method), query: method)
22
- node.add_error(message)
21
+ message = translate_error(application.locale, value: value, actual: value.send(method), query: method)
22
+ application.add_error(message)
23
23
  end
24
24
  end
25
25
  end
@@ -1,11 +1,5 @@
1
1
  module NxtSchema
2
2
  module Validators
3
- class Registry
4
- extend NxtRegistry
5
-
6
- VALIDATORS = registry :validators, call: false do
7
-
8
- end
9
- end
3
+ REGISTRY = NxtRegistry::Registry.new(call: false)
10
4
  end
11
5
  end
@@ -1,14 +1,14 @@
1
1
  module NxtSchema
2
- module Node
2
+ module Validator
3
3
  class ValidateWithProxy
4
- def initialize(node)
5
- @node = node
4
+ def initialize(application)
5
+ @application = application
6
6
  @aggregated_errors = []
7
7
  end
8
8
 
9
- attr_reader :node
9
+ attr_reader :application
10
10
 
11
- delegate_missing_to :node
11
+ delegate_missing_to :application
12
12
 
13
13
  def validate(&block)
14
14
  result = instance_exec(&block)
@@ -24,7 +24,7 @@ module NxtSchema
24
24
 
25
25
  def copy_aggregated_errors_to_node
26
26
  aggregated_errors.each do |error|
27
- node.add_error(error)
27
+ application.add_error(error)
28
28
  end
29
29
  end
30
30
 
@@ -33,8 +33,8 @@ module NxtSchema
33
33
  attr_reader :aggregated_errors
34
34
 
35
35
  def validator(key, *args)
36
- validator = node.validator(key, *args)
37
- validator.call(self, node.value)
36
+ validator = application.node.send(:validator, key, *args)
37
+ validator.call(self, application.input)
38
38
  end
39
39
  end
40
40
  end
@@ -3,14 +3,14 @@ module NxtSchema
3
3
  class Validator
4
4
  def self.register_as(*keys)
5
5
  keys.each do |key|
6
- NxtSchema::Validators::Registry::VALIDATORS.register(key, self)
6
+ NxtSchema::Validators::REGISTRY.register(key, self)
7
7
  end
8
8
 
9
9
  define_method('key') { @key ||= keys.first }
10
10
  end
11
11
 
12
12
  def translate_error(locale, **options)
13
- NxtSchema::ErrorMessages.resolve(locale, key, **options)
13
+ NxtSchema::Validators::ErrorMessages.resolve(locale, key, **options)
14
14
  end
15
15
  end
16
16
  end
@@ -1,3 +1,3 @@
1
1
  module NxtSchema
2
- VERSION = "0.1.2"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -38,6 +38,7 @@ Gem::Specification.new do |spec|
38
38
  spec.add_dependency "activesupport"
39
39
  spec.add_dependency "dry-types"
40
40
  spec.add_dependency "nxt_registry"
41
+ spec.add_dependency "nxt_init"
41
42
  spec.add_development_dependency "bundler", "~> 1.17"
42
43
  spec.add_development_dependency "rake", "~> 12.3.3"
43
44
  spec.add_development_dependency "rspec", "~> 3.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nxt_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Robecke
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-04 00:00:00.000000000 Z
11
+ date: 2020-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: nxt_init
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -131,6 +145,7 @@ extra_rdoc_files: []
131
145
  files:
132
146
  - ".gitignore"
133
147
  - ".rspec"
148
+ - ".ruby-version"
134
149
  - ".travis.yml"
135
150
  - Gemfile
136
151
  - Gemfile.lock
@@ -140,38 +155,42 @@ files:
140
155
  - bin/console
141
156
  - bin/setup
142
157
  - lib/nxt_schema.rb
158
+ - lib/nxt_schema/application.rb
159
+ - lib/nxt_schema/application/any_of.rb
160
+ - lib/nxt_schema/application/base.rb
161
+ - lib/nxt_schema/application/collection.rb
162
+ - lib/nxt_schema/application/error_store.rb
163
+ - lib/nxt_schema/application/errors/schema_error.rb
164
+ - lib/nxt_schema/application/errors/validation_error.rb
165
+ - lib/nxt_schema/application/leaf.rb
166
+ - lib/nxt_schema/application/schema.rb
143
167
  - lib/nxt_schema/callable.rb
144
- - lib/nxt_schema/callable_or_value.rb
145
168
  - lib/nxt_schema/dsl.rb
146
- - lib/nxt_schema/error_messages.rb
147
- - lib/nxt_schema/error_messages/en.yaml
148
- - lib/nxt_schema/errors.rb
149
- - lib/nxt_schema/errors/error.rb
150
- - lib/nxt_schema/errors/invalid_options_error.rb
151
- - lib/nxt_schema/errors/schema_not_applied_error.rb
152
- - lib/nxt_schema/node.rb
169
+ - lib/nxt_schema/error.rb
170
+ - lib/nxt_schema/errors/invalid.rb
171
+ - lib/nxt_schema/errors/invalid_options.rb
172
+ - lib/nxt_schema/missing_input.rb
173
+ - lib/nxt_schema/node/any_of.rb
153
174
  - lib/nxt_schema/node/base.rb
154
175
  - lib/nxt_schema/node/collection.rb
155
- - lib/nxt_schema/node/constructor.rb
156
- - lib/nxt_schema/node/default_value_evaluator.rb
157
- - lib/nxt_schema/node/error.rb
158
- - lib/nxt_schema/node/has_subnodes.rb
176
+ - lib/nxt_schema/node/has_sub_nodes.rb
159
177
  - lib/nxt_schema/node/leaf.rb
160
178
  - lib/nxt_schema/node/maybe_evaluator.rb
179
+ - lib/nxt_schema/node/on_evaluator.rb
161
180
  - lib/nxt_schema/node/schema.rb
162
- - lib/nxt_schema/node/template_store.rb
181
+ - lib/nxt_schema/node/sub_nodes.rb
163
182
  - lib/nxt_schema/node/type_resolver.rb
164
- - lib/nxt_schema/node/validate_with_proxy.rb
165
- - lib/nxt_schema/registry.rb
183
+ - lib/nxt_schema/node/type_system_resolver.rb
166
184
  - lib/nxt_schema/types.rb
167
- - lib/nxt_schema/undefined.rb
168
185
  - lib/nxt_schema/validators/attribute.rb
169
- - lib/nxt_schema/validators/equality.rb
170
- - lib/nxt_schema/validators/excluded.rb
186
+ - lib/nxt_schema/validators/equal_to.rb
187
+ - lib/nxt_schema/validators/error_messages.rb
188
+ - lib/nxt_schema/validators/error_messages/en.yaml
189
+ - lib/nxt_schema/validators/excluded_in.rb
171
190
  - lib/nxt_schema/validators/excludes.rb
172
191
  - lib/nxt_schema/validators/greater_than.rb
173
192
  - lib/nxt_schema/validators/greater_than_or_equal.rb
174
- - lib/nxt_schema/validators/included.rb
193
+ - lib/nxt_schema/validators/included_in.rb
175
194
  - lib/nxt_schema/validators/includes.rb
176
195
  - lib/nxt_schema/validators/less_than.rb
177
196
  - lib/nxt_schema/validators/less_than_or_equal.rb
@@ -179,6 +198,7 @@ files:
179
198
  - lib/nxt_schema/validators/pattern.rb
180
199
  - lib/nxt_schema/validators/query.rb
181
200
  - lib/nxt_schema/validators/registry.rb
201
+ - lib/nxt_schema/validators/validate_with_proxy.rb
182
202
  - lib/nxt_schema/validators/validator.rb
183
203
  - lib/nxt_schema/version.rb
184
204
  - nxt_schema.gemspec
@@ -204,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
224
  - !ruby/object:Gem::Version
205
225
  version: '0'
206
226
  requirements: []
207
- rubygems_version: 3.0.3
227
+ rubygems_version: 3.1.2
208
228
  signing_key:
209
229
  specification_version: 4
210
230
  summary: Write a short summary, because RubyGems requires one.