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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93717ed184e878dc6d3dea92d7c35f92f1157c3d7277d44960d7030b240173f7
4
- data.tar.gz: d7f61ff50a6d66a2abcf62baf220528804e66bce854c8de76fe5dcb5327d0e46
3
+ metadata.gz: 9f597d5c2bf74605429011719cb548759b2acb223a0947f4d26137ad02ade075
4
+ data.tar.gz: 66e68c83721e37746d3102bed5befe2e7e0d3c30fd2e0ff02bc30007114620dc
5
5
  SHA512:
6
- metadata.gz: 185a54220516ff302377c99d44aaff8d939fe14aed4dd9a3cc35c8d8e766bc2bf72451191a2751be14a1dd4687b3d818436d54646ac0f36c54ce9a61963865b8
7
- data.tar.gz: 6c452536bc4f40a94dec53c7fa6779157f763f3a5239db9520fb75f2f5036c09bb2d145c5b2a53b85c42825b534c7c55ef4ec3228f0576f701543572f011727b
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-1)
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-2)
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-3)
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.0 | https://github.com/serradura/kind/blob/v5.x/README.md
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.0 | v5.x | >= 2.1.0, <= 3.0.0 | >= 3.2, < 7.0 |
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
- KindObject = ->(value) do
27
- defined?(Kind::Object) ? Kind::Object === value : false
28
- end
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 KindUnionType, KindObject then assert_kind_object(expected, value, error_message)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kind
4
- VERSION = '5.8.0'
4
+ VERSION = '5.8.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kind
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.8.0
4
+ version: 5.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Serradura