kind 5.9.0 → 5.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +51 -33
- data/README.md +4 -4
- data/lib/kind/any.rb +13 -6
- data/lib/kind/version.rb +1 -1
- 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: db0a2008eeb0137d93f74239fc4731ee7cc217a5714a30b9e57305e0d2a5b10a
|
4
|
+
data.tar.gz: 3b5efef522cc08fdd856ea4a9e3197eaef10c887a335479cac3a70cc67012ec6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ded2725b6df3fee68cb30df6aa3172d2b16493f7071314a8be8dc0345dd450461ba899defad6af62073569e83348108f6ac6bbd7699ddc3c47c9e4ea9107069
|
7
|
+
data.tar.gz: d724177aa2643868ef4ff5700c51d228209aa1f40ca756a3670f8ddb5f769af61a8a14f7433a04a9d7f9451deda73b60b91739c0e7a153a03d4eabde20ba24b3
|
data/CHANGELOG.md
CHANGED
@@ -3,91 +3,93 @@
|
|
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.
|
6
|
+
- [5.10.0 (2021-09-23)](#5100-2021-09-23)
|
7
7
|
- [Added](#added)
|
8
|
+
- [5.9.0 (2021-09-22)](#590-2021-09-22)
|
9
|
+
- [Added](#added-1)
|
8
10
|
- [5.8.1 (2021-09-22)](#581-2021-09-22)
|
9
11
|
- [Fixed](#fixed)
|
10
12
|
- [5.8.0 (2021-09-22)](#580-2021-09-22)
|
11
|
-
- [Added](#added-1)
|
12
|
-
- [5.7.0 (2021-06-22)](#570-2021-06-22)
|
13
13
|
- [Added](#added-2)
|
14
|
-
- [5.
|
14
|
+
- [5.7.0 (2021-06-22)](#570-2021-06-22)
|
15
15
|
- [Added](#added-3)
|
16
|
-
- [5.
|
16
|
+
- [5.6.0 (2021-05-14)](#560-2021-05-14)
|
17
17
|
- [Added](#added-4)
|
18
|
+
- [5.5.0 (2021-04-05)](#550-2021-04-05)
|
19
|
+
- [Added](#added-5)
|
18
20
|
- [5.4.1 (2021-03-26)](#541-2021-03-26)
|
19
21
|
- [Fixed](#fixed-1)
|
20
22
|
- [5.4.0 (2021-03-25)](#540-2021-03-25)
|
21
|
-
- [Added](#added-5)
|
22
|
-
- [5.3.0 (2021-03-23)](#530-2021-03-23)
|
23
23
|
- [Added](#added-6)
|
24
|
-
- [5.
|
24
|
+
- [5.3.0 (2021-03-23)](#530-2021-03-23)
|
25
25
|
- [Added](#added-7)
|
26
|
+
- [5.2.0 (2021-03-17)](#520-2021-03-17)
|
27
|
+
- [Added](#added-8)
|
26
28
|
- [Deprecated](#deprecated)
|
27
29
|
- [Changes](#changes)
|
28
30
|
- [5.1.0 (2021-02-23)](#510-2021-02-23)
|
29
|
-
- [Added](#added-
|
31
|
+
- [Added](#added-9)
|
30
32
|
- [Deprecated](#deprecated-1)
|
31
33
|
- [5.0.0 (2021-02-22)](#500-2021-02-22)
|
32
34
|
- [Breaking Changes](#breaking-changes)
|
33
35
|
- [Removed](#removed)
|
34
36
|
- [4.1.0 (2021-02-22)](#410-2021-02-22)
|
35
|
-
- [Added](#added-9)
|
36
|
-
- [4.0.0 (2021-02-22)](#400-2021-02-22)
|
37
37
|
- [Added](#added-10)
|
38
|
+
- [4.0.0 (2021-02-22)](#400-2021-02-22)
|
39
|
+
- [Added](#added-11)
|
38
40
|
- [Deprecated](#deprecated-2)
|
39
41
|
- [Fixed](#fixed-2)
|
40
42
|
- [3.1.0 (2020-07-08)](#310-2020-07-08)
|
41
|
-
- [Added](#added-
|
43
|
+
- [Added](#added-12)
|
42
44
|
- [3.0.0 (2020-06-25)](#300-2020-06-25)
|
43
45
|
- [Breaking Changes](#breaking-changes-1)
|
44
|
-
- [Added](#added-12)
|
45
|
-
- [2.3.0 (2020-06-24)](#230-2020-06-24)
|
46
46
|
- [Added](#added-13)
|
47
|
-
- [2.
|
47
|
+
- [2.3.0 (2020-06-24)](#230-2020-06-24)
|
48
48
|
- [Added](#added-14)
|
49
|
-
- [2.
|
49
|
+
- [2.2.0 (2020-06-23)](#220-2020-06-23)
|
50
50
|
- [Added](#added-15)
|
51
|
+
- [2.1.0 (2020-05-12)](#210-2020-05-12)
|
52
|
+
- [Added](#added-16)
|
51
53
|
- [Breaking Changes](#breaking-changes-2)
|
52
54
|
- [2.0.0 (2020-05-07)](#200-2020-05-07)
|
53
|
-
- [Added](#added-
|
55
|
+
- [Added](#added-17)
|
54
56
|
- [Breaking Changes](#breaking-changes-3)
|
55
57
|
- [Removed](#removed-1)
|
56
58
|
- [1.9.0 (2020-05-06)](#190-2020-05-06)
|
57
|
-
- [Added](#added-17)
|
58
|
-
- [1.8.0 (2020-05-03)](#180-2020-05-03)
|
59
59
|
- [Added](#added-18)
|
60
|
+
- [1.8.0 (2020-05-03)](#180-2020-05-03)
|
61
|
+
- [Added](#added-19)
|
60
62
|
- [1.7.0 (2020-05-03)](#170-2020-05-03)
|
61
63
|
- [Fixed](#fixed-3)
|
62
64
|
- [1.6.0 (2020-04-17)](#160-2020-04-17)
|
63
|
-
- [Added](#added-
|
65
|
+
- [Added](#added-20)
|
64
66
|
- [Changes](#changes-1)
|
65
67
|
- [1.5.0 (2020-04-12)](#150-2020-04-12)
|
66
|
-
- [Added](#added-20)
|
67
|
-
- [1.4.0 (2020-04-12)](#140-2020-04-12)
|
68
68
|
- [Added](#added-21)
|
69
|
-
- [1.
|
69
|
+
- [1.4.0 (2020-04-12)](#140-2020-04-12)
|
70
70
|
- [Added](#added-22)
|
71
|
-
- [1.
|
71
|
+
- [1.3.0 (2020-04-12)](#130-2020-04-12)
|
72
72
|
- [Added](#added-23)
|
73
|
-
- [1.
|
73
|
+
- [1.2.0 (2020-04-12)](#120-2020-04-12)
|
74
74
|
- [Added](#added-24)
|
75
|
+
- [1.1.0 (2020-04-09)](#110-2020-04-09)
|
76
|
+
- [Added](#added-25)
|
75
77
|
- [Fixed](#fixed-4)
|
76
78
|
- [1.0.0 (2020-03-16)](#100-2020-03-16)
|
77
|
-
- [Added](#added-25)
|
78
|
-
- [0.6.0 (2020-01-06)](#060-2020-01-06)
|
79
79
|
- [Added](#added-26)
|
80
|
-
- [0.
|
80
|
+
- [0.6.0 (2020-01-06)](#060-2020-01-06)
|
81
81
|
- [Added](#added-27)
|
82
|
-
- [0.
|
82
|
+
- [0.5.0 (2020-01-04)](#050-2020-01-04)
|
83
83
|
- [Added](#added-28)
|
84
|
-
- [0.
|
84
|
+
- [0.4.0 (2020-01-03)](#040-2020-01-03)
|
85
85
|
- [Added](#added-29)
|
86
|
+
- [0.3.0 (2020-01-03)](#030-2020-01-03)
|
87
|
+
- [Added](#added-30)
|
86
88
|
- [Breaking Changes](#breaking-changes-4)
|
87
89
|
- [0.2.0 (2020-01-02)](#020-2020-01-02)
|
88
|
-
- [Added](#added-30)
|
89
|
-
- [0.1.0 (2019-12-26)](#010-2019-12-26)
|
90
90
|
- [Added](#added-31)
|
91
|
+
- [0.1.0 (2019-12-26)](#010-2019-12-26)
|
92
|
+
- [Added](#added-32)
|
91
93
|
|
92
94
|
## Unreleased
|
93
95
|
|
@@ -99,6 +101,22 @@ This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the
|
|
99
101
|
### Fixed
|
100
102
|
-->
|
101
103
|
|
104
|
+
5.10.0 (2021-09-23)
|
105
|
+
------------------
|
106
|
+
|
107
|
+
### Added
|
108
|
+
|
109
|
+
* [#69](https://github.com/serradura/kind/pull/69) - Make `Kind::Any` works with a `Set`.
|
110
|
+
```ruby
|
111
|
+
require 'kind/any'
|
112
|
+
|
113
|
+
Kind::Any.new(Set[:low, :high]).inspect # Kind::Any{:low, :high}
|
114
|
+
|
115
|
+
Kind::Any.new(Array['open', 'close']).inspect # Kind::Any["open", "close"]
|
116
|
+
```
|
117
|
+
|
118
|
+
[⬆️ Back to Top](#changelog-)
|
119
|
+
|
102
120
|
5.9.0 (2021-09-22)
|
103
121
|
------------------
|
104
122
|
|
@@ -219,7 +237,7 @@ Kind.assert_hash!({level: :medium}, schema: {level: Level})
|
|
219
237
|
Level.values # [:low, :high]
|
220
238
|
```
|
221
239
|
|
222
|
-
* [#66](https://github.com/serradura/kind/pull/66) -
|
240
|
+
* [#66](https://github.com/serradura/kind/pull/66) - Add `Kind::Enum.from_array(arg, use_index_as_value:)` to allow the creation of enums where its values will be the array values.
|
223
241
|
```ruby
|
224
242
|
require 'kind/enum'
|
225
243
|
|
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.
|
45
|
+
5.10.0 | 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
|
@@ -69,7 +69,7 @@ unreleased | https://github.com/serradura/kind/blob/main/README.md
|
|
69
69
|
- [Creating type handlers](#creating-type-handlers)
|
70
70
|
- [Dynamic creation](#dynamic-creation)
|
71
71
|
- [Using a class or a module](#using-a-class-or-a-module)
|
72
|
-
- [Using Kind.object(name:, &block)
|
72
|
+
- [Using Kind.object(name:, &block)](#using-kindobjectname-block)
|
73
73
|
- [Kind::<Type> object](#kindtype-object)
|
74
74
|
- [Utility methods](#utility-methods)
|
75
75
|
- [Kind.of_class?()](#kindof_class)
|
@@ -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.
|
128
|
+
| 5.10.0 | 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 |
|
@@ -455,7 +455,7 @@ kind_of_user.maybe('1').value_or(User.new) # #<User:0x0000...>
|
|
455
455
|
|
456
456
|
[⬆️ Back to Top](#table-of-contents-)
|
457
457
|
|
458
|
-
##### Using Kind.object(name:, &block)
|
458
|
+
##### Using Kind.object(name:, &block)
|
459
459
|
|
460
460
|
```ruby
|
461
461
|
PositiveInteger = Kind.object(name: 'PositiveInteger') do |value|
|
data/lib/kind/any.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Kind
|
4
4
|
class Any
|
5
|
-
|
5
|
+
FilledList = ->(val) {(val.is_a?(::Array) || val.is_a?(::Set)) && !val.empty?}
|
6
6
|
|
7
7
|
singleton_class.send(:alias_method, :[], :new)
|
8
8
|
|
@@ -11,11 +11,11 @@ module Kind
|
|
11
11
|
def initialize(*args)
|
12
12
|
array = args.size == 1 ? args[0] : args
|
13
13
|
|
14
|
-
@values = Kind.of(
|
14
|
+
@values = Kind.of(FilledList, array, expected: 'filled array or set')
|
15
15
|
end
|
16
16
|
|
17
|
-
def ===(
|
18
|
-
@values.
|
17
|
+
def ===(value)
|
18
|
+
@values.include?(value)
|
19
19
|
end
|
20
20
|
|
21
21
|
def [](value, label: nil)
|
@@ -27,11 +27,18 @@ module Kind
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def name
|
30
|
-
|
30
|
+
str = @values.inspect
|
31
|
+
|
32
|
+
if @values.is_a?(::Set)
|
33
|
+
str.sub!(/\A#<Set: /, '')
|
34
|
+
str.chomp!('>')
|
35
|
+
end
|
36
|
+
|
37
|
+
"Kind::Any#{str}"
|
31
38
|
end
|
32
39
|
|
33
40
|
alias inspect name
|
34
41
|
|
35
|
-
private_constant :
|
42
|
+
private_constant :FilledList
|
36
43
|
end
|
37
44
|
end
|
data/lib/kind/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kind
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Serradura
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A development toolkit for Ruby with several small/cohesive abstractions
|
14
14
|
(monads, enums, business logic, data validation...) to empower your development
|