openapi_contracts 0.15.2 → 0.16.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 234f41aae2d6860cd521e376cc0efa15f73c69cbce04aa158b5f060f5696b9a2
4
- data.tar.gz: 1b3cb49933bca518b5a9287a4b0801e9e9c68857e52ad873492e26af9d0c6a6b
3
+ metadata.gz: 93de30085796380ba48bc3ac5e1919a80ba7d073d29a43484391d1769772a442
4
+ data.tar.gz: c6849b72002e53d9d33c5ca9036bd528a45d52e6bef4802cbe5f08ba28887c25
5
5
  SHA512:
6
- metadata.gz: 6f2b66f42ab4c656427f5a96e404343494bc6882b42fc0377d91135939f4669fef906bd7e79a1779c9ee765d38fd919618d0e95525ec11aef99e88750157561e
7
- data.tar.gz: 8f0f8155ffcfd4af0202ddd67144bc8b5f6b3d2c98f4d72dfcbde171e8cc26c2fac454887676ba7220e308df0d703b72643950911ca965108097aacd85c7a9dd
6
+ metadata.gz: 9c1ce0325629f3e05e4226eac870b00c25a6f10de41525a9a43290d84d12876c6dd77a5954e84150bf3321923bf3a87f3f264a7a9586c33cc4b7edd8feb4e9b2
7
+ data.tar.gz: 4f4d8380e11632c13c28c3fa626eda40b73e6c5da7a3cf14256159753bb012a4a48ede962a73e322494fc9227bb3d2d54884d38fab290e536c1abbf3b6eae119
@@ -18,10 +18,26 @@ module OpenapiContracts::Validators
18
18
 
19
19
  if value.blank?
20
20
  @errors << "Missing header #{header.name}" if header.required?
21
- elsif !JSONSchemer.schema(header.schema).valid?(value)
22
- @errors << "Header #{header.name} does not match"
21
+ else
22
+ schemer = JSONSchemer.schema(header.schema)
23
+ unless schemer.valid?(value)
24
+ validation_errors = schemer.validate(value).to_a
25
+ @errors << validation_error_message(header, value, validation_errors)
26
+ end
23
27
  end
24
28
  end
25
29
  end
30
+
31
+ def validation_error_message(header, value, error_array)
32
+ if error_array.empty?
33
+ "Header #{header.name} does not match schema"
34
+ else
35
+ error_array.map { |error|
36
+ error_message = "Header #{header.name} validation error: #{error['error']}"
37
+ truncated_value = value.to_s.truncate(100)
38
+ error_message + " (value: #{truncated_value})"
39
+ }.join("\n")
40
+ end
41
+ end
26
42
  end
27
43
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openapi_contracts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.2
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mkon
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-14 00:00:00.000000000 Z
10
+ date: 2025-04-03 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activesupport