schemacop 3.0.31 → 3.0.32
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/README_V3.md +3 -0
- data/VERSION +1 -1
- data/lib/schemacop.rb +6 -0
- data/schemacop.gemspec +3 -3
- data/test/lib/test_helper.rb +4 -4
- data/test/unit/schemacop/v3/string_node_test.rb +52 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e3b529351f7f22ef04eb795de3c5fbbd9d4d34940c35a88bb25b10a833772d95
|
|
4
|
+
data.tar.gz: b07e0415ed32a39aea0b2551d81fb73d4e794442b73605d454131946fc662b15
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c4a92423884489e157089281c2ea407e7aacef1e28488e73f3ba32510bcc314057c017dcc17c9b00353e8830e78fc11816e2436167f634483306dc3b26429807
|
|
7
|
+
data.tar.gz: a52a56c608e9510b9053b845190d1473e3474ddc15f922a6f001d9b19aeef97911da4f85fdaccf849976d1851ab7d4992b270786a62a18028bcd76b47da15622
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
data/README_V3.md
CHANGED
|
@@ -273,6 +273,9 @@ transformed into various types.
|
|
|
273
273
|
* `ipv4`
|
|
274
274
|
A valid IPv4 address without netmask. No casting is performed.
|
|
275
275
|
|
|
276
|
+
* `ipv4-cidr`
|
|
277
|
+
A valid IPv4 CIDR address with netmask. No casting is performed.
|
|
278
|
+
|
|
276
279
|
* `ipv6`
|
|
277
280
|
A valid IPv6 address without netmask. No casting is performed.
|
|
278
281
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.0.
|
|
1
|
+
3.0.32
|
data/lib/schemacop.rb
CHANGED
|
@@ -104,6 +104,12 @@ module Schemacop
|
|
|
104
104
|
handler: ->(value) { value }
|
|
105
105
|
)
|
|
106
106
|
|
|
107
|
+
register_string_formatter(
|
|
108
|
+
:'ipv4-cidr',
|
|
109
|
+
pattern: Regexp.new(Resolv::IPv4::Regex.source[0..-3] + %r{/([0-9]|[1-2][0-9]|3[1-2])\z}.source),
|
|
110
|
+
handler: ->(value) { value }
|
|
111
|
+
)
|
|
112
|
+
|
|
107
113
|
register_string_formatter(
|
|
108
114
|
:ipv6,
|
|
109
115
|
pattern: Resolv::IPv6::Regex,
|
data/schemacop.gemspec
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: schemacop 3.0.
|
|
2
|
+
# stub: schemacop 3.0.32 ruby lib
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "schemacop".freeze
|
|
6
|
-
s.version = "3.0.
|
|
6
|
+
s.version = "3.0.32"
|
|
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 = "2025-02-
|
|
11
|
+
s.date = "2025-02-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]
|
data/test/lib/test_helper.rb
CHANGED
|
@@ -134,11 +134,11 @@ class V3Test < SchemacopTest
|
|
|
134
134
|
|
|
135
135
|
Expected
|
|
136
136
|
--------
|
|
137
|
-
#{expected_error
|
|
137
|
+
#{expected_error}
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
#{result.messages_by_path[path].join("\n\n")
|
|
139
|
+
Actual
|
|
140
|
+
------
|
|
141
|
+
#{result.messages_by_path[path].join("\n\n")}
|
|
142
142
|
ERROR
|
|
143
143
|
end
|
|
144
144
|
end
|
|
@@ -403,6 +403,58 @@ module Schemacop
|
|
|
403
403
|
end
|
|
404
404
|
end
|
|
405
405
|
|
|
406
|
+
def test_format_ipv4_cidr
|
|
407
|
+
schema :string, format: :'ipv4-cidr'
|
|
408
|
+
|
|
409
|
+
assert_json(type: :string, format: :'ipv4-cidr')
|
|
410
|
+
|
|
411
|
+
assert_validation 234 do
|
|
412
|
+
error '/', StringNodeTest.invalid_type_error(Integer)
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
assert_validation 'sd sfdij soidf' do
|
|
416
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
# Some valid IPv4 CIDR addresses
|
|
420
|
+
assert_validation '0.1.2.3/23'
|
|
421
|
+
assert_validation '110.0.217.94/1'
|
|
422
|
+
assert_validation '59.1.18.160/32'
|
|
423
|
+
assert_validation '83.212.124.74/24'
|
|
424
|
+
assert_validation '208.122.67.117/10'
|
|
425
|
+
assert_validation '175.186.176.213/8'
|
|
426
|
+
|
|
427
|
+
# Some invalid IPv4 CIDR addresses
|
|
428
|
+
assert_validation '256.1.4.2/24' do
|
|
429
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
430
|
+
end
|
|
431
|
+
assert_validation '2.4.522.1/32' do
|
|
432
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
433
|
+
end
|
|
434
|
+
assert_validation '1.1.1/21' do
|
|
435
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
436
|
+
end
|
|
437
|
+
assert_validation '1/4' do
|
|
438
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
439
|
+
end
|
|
440
|
+
assert_validation '0.1.2.3/33' do
|
|
441
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
442
|
+
end
|
|
443
|
+
assert_validation '0.1.2.3/123' do
|
|
444
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
# Normal IPv4 addresses are not allowed
|
|
448
|
+
assert_validation '247.182.236.127' do
|
|
449
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
# And IPv6 isn't allowed as well
|
|
453
|
+
assert_validation 'd91c:af3e:72f1:f5c3::::ad81' do
|
|
454
|
+
error '/', 'String does not match format "ipv4-cidr".'
|
|
455
|
+
end
|
|
456
|
+
end
|
|
457
|
+
|
|
406
458
|
def test_format_ipv6
|
|
407
459
|
schema :string, format: :ipv6
|
|
408
460
|
|
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.
|
|
4
|
+
version: 3.0.32
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sitrox
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-02-
|
|
11
|
+
date: 2025-02-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|