kind 5.8.0 → 5.8.1
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 +23 -4
- data/README.md +2 -2
- data/lib/kind/__lib__/assert_hash.rb +7 -11
- data/lib/kind/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f597d5c2bf74605429011719cb548759b2acb223a0947f4d26137ad02ade075
|
4
|
+
data.tar.gz: 66e68c83721e37746d3102bed5befe2e7e0d3c30fd2e0ff02bc30007114620dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 856b289e62376c59e570c1de277e976e9434040dedd12cbaaca7ef8a71aa1c33ba1d2c304a3c5b7634830326838ac58ace2c5647d8c5b36a9df1638c70e67385
|
7
|
+
data.tar.gz: 831252cae86eee16ae082a9f64f5065ed2dfcb33ae2df904517cce929b81a7951fd844f895fce1a44b30d60901e36f4642c74dbd9b861d9de76b9ef72146acc4
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the recommendations of [keepachangelog.com](http://keepachangelog.com/).
|
4
4
|
|
5
5
|
- [Unreleased](#unreleased)
|
6
|
+
- [5.8.1 (2021-09-22)](#581-2021-09-22)
|
7
|
+
- [Fixed](#fixed)
|
6
8
|
- [5.8.0 (2021-09-22)](#580-2021-09-22)
|
7
9
|
- [Added](#added)
|
8
10
|
- [5.7.0 (2021-06-22)](#570-2021-06-22)
|
@@ -12,7 +14,7 @@ This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the
|
|
12
14
|
- [5.5.0 (2021-04-05)](#550-2021-04-05)
|
13
15
|
- [Added](#added-3)
|
14
16
|
- [5.4.1 (2021-03-26)](#541-2021-03-26)
|
15
|
-
- [Fixed](#fixed)
|
17
|
+
- [Fixed](#fixed-1)
|
16
18
|
- [5.4.0 (2021-03-25)](#540-2021-03-25)
|
17
19
|
- [Added](#added-4)
|
18
20
|
- [5.3.0 (2021-03-23)](#530-2021-03-23)
|
@@ -32,7 +34,7 @@ This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the
|
|
32
34
|
- [4.0.0 (2021-02-22)](#400-2021-02-22)
|
33
35
|
- [Added](#added-9)
|
34
36
|
- [Deprecated](#deprecated-2)
|
35
|
-
- [Fixed](#fixed-
|
37
|
+
- [Fixed](#fixed-2)
|
36
38
|
- [3.1.0 (2020-07-08)](#310-2020-07-08)
|
37
39
|
- [Added](#added-10)
|
38
40
|
- [3.0.0 (2020-06-25)](#300-2020-06-25)
|
@@ -54,7 +56,7 @@ This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the
|
|
54
56
|
- [1.8.0 (2020-05-03)](#180-2020-05-03)
|
55
57
|
- [Added](#added-17)
|
56
58
|
- [1.7.0 (2020-05-03)](#170-2020-05-03)
|
57
|
-
- [Fixed](#fixed-
|
59
|
+
- [Fixed](#fixed-3)
|
58
60
|
- [1.6.0 (2020-04-17)](#160-2020-04-17)
|
59
61
|
- [Added](#added-18)
|
60
62
|
- [Changes](#changes-1)
|
@@ -68,7 +70,7 @@ This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the
|
|
68
70
|
- [Added](#added-22)
|
69
71
|
- [1.1.0 (2020-04-09)](#110-2020-04-09)
|
70
72
|
- [Added](#added-23)
|
71
|
-
- [Fixed](#fixed-
|
73
|
+
- [Fixed](#fixed-4)
|
72
74
|
- [1.0.0 (2020-03-16)](#100-2020-03-16)
|
73
75
|
- [Added](#added-24)
|
74
76
|
- [0.6.0 (2020-01-06)](#060-2020-01-06)
|
@@ -95,6 +97,23 @@ This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the
|
|
95
97
|
### Fixed
|
96
98
|
-->
|
97
99
|
|
100
|
+
5.8.1 (2021-09-22)
|
101
|
+
------------------
|
102
|
+
|
103
|
+
### Fixed
|
104
|
+
|
105
|
+
* [#67](https://github.com/serradura/kind/pull/67) - Make `Kind.assert_hash!(some_hash, schema:)` works with a `Kind::Any` instance.
|
106
|
+
```ruby
|
107
|
+
require 'kind/any'
|
108
|
+
|
109
|
+
Level = Kind::Any[:low, :high]
|
110
|
+
|
111
|
+
Kind.assert_hash!({level: :medium}, schema: {level: Level})
|
112
|
+
# Kind::Error (The key :status has an invalid value. Expected: Kind::Any[:low, :high])
|
113
|
+
```
|
114
|
+
|
115
|
+
[⬆️ Back to Top](#changelog-)
|
116
|
+
|
98
117
|
5.8.0 (2021-09-22)
|
99
118
|
------------------
|
100
119
|
|
data/README.md
CHANGED
@@ -42,7 +42,7 @@ So, I invite you to check out these features to see how they could be useful for
|
|
42
42
|
Version | Documentation
|
43
43
|
---------- | -------------
|
44
44
|
unreleased | https://github.com/serradura/kind/blob/main/README.md
|
45
|
-
5.8.
|
45
|
+
5.8.1 | https://github.com/serradura/kind/blob/v5.x/README.md
|
46
46
|
4.1.0 | https://github.com/serradura/kind/blob/v4.x/README.md
|
47
47
|
3.1.0 | https://github.com/serradura/kind/blob/v3.x/README.md
|
48
48
|
2.3.0 | https://github.com/serradura/kind/blob/v2.x/README.md
|
@@ -125,7 +125,7 @@ unreleased | https://github.com/serradura/kind/blob/main/README.md
|
|
125
125
|
| kind | branch | ruby | activemodel |
|
126
126
|
| -------------- | ------- | ------------------ | -------------- |
|
127
127
|
| unreleased | main | >= 2.1.0, <= 3.0.0 | >= 3.2, < 7.0 |
|
128
|
-
| 5.8.
|
128
|
+
| 5.8.1 | v5.x | >= 2.1.0, <= 3.0.0 | >= 3.2, < 7.0 |
|
129
129
|
| 4.1.0 | v4.x | >= 2.2.0, <= 3.0.0 | >= 3.2, < 7.0 |
|
130
130
|
| 3.1.0 | v3.x | >= 2.2.0, <= 2.7 | >= 3.2, < 7.0 |
|
131
131
|
| 2.3.0 | v2.x | >= 2.2.0, <= 2.7 | >= 3.2, <= 6.0 |
|
@@ -23,13 +23,9 @@ module Kind
|
|
23
23
|
module Schema
|
24
24
|
extend self
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
KindUnionType = ->(value) do
|
31
|
-
defined?(Kind::UnionType) ? Kind::UnionType === value : false
|
32
|
-
end
|
26
|
+
KindAny = ->(value) { defined?(Kind::Any) ? Kind::Any === value : false }
|
27
|
+
KindObject = ->(value) { defined?(Kind::Object) ? Kind::Object === value : false }
|
28
|
+
KindUnionType = ->(value) { defined?(Kind::UnionType) ? Kind::UnionType === value : false }
|
33
29
|
|
34
30
|
def any(hash, spec)
|
35
31
|
spec.each do |key, expected|
|
@@ -37,7 +33,7 @@ module Kind
|
|
37
33
|
error_message = "The key #{key.inspect} has an invalid value"
|
38
34
|
|
39
35
|
case expected
|
40
|
-
when
|
36
|
+
when KindAny, KindObject, KindUnionType then assert_kind_object(expected, value, error_message)
|
41
37
|
when ::Module then assert_kind_of(expected, value, error_message)
|
42
38
|
when ::Proc then assert(expected.call(value), error_message)
|
43
39
|
when ::Regexp then assert_match(expected, value, error_message)
|
@@ -58,7 +54,7 @@ module Kind
|
|
58
54
|
private
|
59
55
|
|
60
56
|
def assert_equal(expected, value, message)
|
61
|
-
raise_kind_error("#{message}. Expected: #{expected}, Given: #{value}") if expected != value
|
57
|
+
raise_kind_error("#{message}. Expected: #{expected.inspect}, Given: #{value.inspect}") if expected != value
|
62
58
|
end
|
63
59
|
|
64
60
|
def assert(value, message)
|
@@ -72,11 +68,11 @@ module Kind
|
|
72
68
|
def assert_match(expected, value, message)
|
73
69
|
STRICT.kind_of(String, value)
|
74
70
|
|
75
|
-
raise_kind_error("#{message}. Expected: #{expected}") if value !~ expected
|
71
|
+
raise_kind_error("#{message}. Expected: #{expected.inspect}") if value !~ expected
|
76
72
|
end
|
77
73
|
|
78
74
|
def assert_kind_of(expected, value, message)
|
79
|
-
raise_kind_error("#{message}. Expected: #{expected}") unless expected === value
|
75
|
+
raise_kind_error("#{message}. Expected: #{expected.inspect}") unless expected === value
|
80
76
|
end
|
81
77
|
|
82
78
|
def assert_kind_object(expected, value, message)
|
data/lib/kind/version.rb
CHANGED