dry-types 1.5.1 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -0
  3. data/LICENSE +1 -1
  4. data/README.md +7 -13
  5. data/dry-types.gemspec +19 -18
  6. data/lib/dry/types/array/constructor.rb +0 -2
  7. data/lib/dry/types/array/member.rb +1 -3
  8. data/lib/dry/types/array.rb +0 -3
  9. data/lib/dry/types/builder.rb +43 -14
  10. data/lib/dry/types/builder_methods.rb +1 -1
  11. data/lib/dry/types/coercions/params.rb +4 -3
  12. data/lib/dry/types/compat.rb +1 -0
  13. data/lib/dry/types/compiler.rb +1 -3
  14. data/lib/dry/types/composition.rb +152 -0
  15. data/lib/dry/types/constrained.rb +0 -5
  16. data/lib/dry/types/constraints.rb +3 -7
  17. data/lib/dry/types/constructor/function.rb +8 -9
  18. data/lib/dry/types/constructor.rb +4 -10
  19. data/lib/dry/types/container.rb +1 -3
  20. data/lib/dry/types/core.rb +2 -3
  21. data/lib/dry/types/decorator.rb +0 -2
  22. data/lib/dry/types/default.rb +3 -6
  23. data/lib/dry/types/enum.rb +0 -3
  24. data/lib/dry/types/errors.rb +13 -1
  25. data/lib/dry/types/extensions/maybe.rb +8 -5
  26. data/lib/dry/types/extensions/monads.rb +7 -2
  27. data/lib/dry/types/fn_container.rb +0 -2
  28. data/lib/dry/types/hash/constructor.rb +2 -4
  29. data/lib/dry/types/hash.rb +1 -6
  30. data/lib/dry/types/implication.rb +66 -0
  31. data/lib/dry/types/intersection.rb +108 -0
  32. data/lib/dry/types/lax.rb +1 -4
  33. data/lib/dry/types/map.rb +9 -3
  34. data/lib/dry/types/module.rb +18 -9
  35. data/lib/dry/types/nominal.rb +2 -13
  36. data/lib/dry/types/predicate_inferrer.rb +8 -9
  37. data/lib/dry/types/predicate_registry.rb +7 -7
  38. data/lib/dry/types/primitive_inferrer.rb +0 -2
  39. data/lib/dry/types/printer/composition.rb +44 -0
  40. data/lib/dry/types/printer.rb +116 -131
  41. data/lib/dry/types/result.rb +0 -2
  42. data/lib/dry/types/schema/key.rb +1 -4
  43. data/lib/dry/types/schema.rb +6 -4
  44. data/lib/dry/types/sum.rb +3 -95
  45. data/lib/dry/types/type.rb +1 -3
  46. data/lib/dry/types/version.rb +1 -1
  47. data/lib/dry/types.rb +49 -22
  48. metadata +32 -46
metadata CHANGED
@@ -1,131 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-types
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-16 00:00:00.000000000 Z
11
+ date: 2024-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: concurrent-ruby
14
+ name: bigdecimal
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: dry-container
28
+ name: concurrent-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.3'
33
+ version: '1.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.3'
40
+ version: '1.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dry-core
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.5'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: '0.5'
47
+ version: '1.0'
51
48
  type: :runtime
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
52
  - - "~>"
56
53
  - !ruby/object:Gem::Version
57
- version: '0.5'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0.5'
54
+ version: '1.0'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: dry-inflector
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
59
  - - "~>"
66
60
  - !ruby/object:Gem::Version
67
- version: '0.1'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 0.1.2
61
+ version: '1.0'
71
62
  type: :runtime
72
63
  prerelease: false
73
64
  version_requirements: !ruby/object:Gem::Requirement
74
65
  requirements:
75
66
  - - "~>"
76
67
  - !ruby/object:Gem::Version
77
- version: '0.1'
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 0.1.2
68
+ version: '1.0'
81
69
  - !ruby/object:Gem::Dependency
82
70
  name: dry-logic
83
71
  requirement: !ruby/object:Gem::Requirement
84
72
  requirements:
85
73
  - - "~>"
86
74
  - !ruby/object:Gem::Version
87
- version: '1.0'
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: 1.0.2
75
+ version: '1.4'
91
76
  type: :runtime
92
77
  prerelease: false
93
78
  version_requirements: !ruby/object:Gem::Requirement
94
79
  requirements:
95
80
  - - "~>"
96
81
  - !ruby/object:Gem::Version
97
- version: '1.0'
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- version: 1.0.2
82
+ version: '1.4'
101
83
  - !ruby/object:Gem::Dependency
102
- name: bundler
84
+ name: zeitwerk
103
85
  requirement: !ruby/object:Gem::Requirement
104
86
  requirements:
105
- - - ">="
87
+ - - "~>"
106
88
  - !ruby/object:Gem::Version
107
- version: '0'
108
- type: :development
89
+ version: '2.6'
90
+ type: :runtime
109
91
  prerelease: false
110
92
  version_requirements: !ruby/object:Gem::Requirement
111
93
  requirements:
112
- - - ">="
94
+ - - "~>"
113
95
  - !ruby/object:Gem::Version
114
- version: '0'
96
+ version: '2.6'
115
97
  - !ruby/object:Gem::Dependency
116
- name: dry-monads
98
+ name: bundler
117
99
  requirement: !ruby/object:Gem::Requirement
118
100
  requirements:
119
- - - "~>"
101
+ - - ">="
120
102
  - !ruby/object:Gem::Version
121
- version: '1.0'
103
+ version: '0'
122
104
  type: :development
123
105
  prerelease: false
124
106
  version_requirements: !ruby/object:Gem::Requirement
125
107
  requirements:
126
- - - "~>"
108
+ - - ">="
127
109
  - !ruby/object:Gem::Version
128
- version: '1.0'
110
+ version: '0'
129
111
  - !ruby/object:Gem::Dependency
130
112
  name: rake
131
113
  requirement: !ruby/object:Gem::Requirement
@@ -193,6 +175,7 @@ files:
193
175
  - lib/dry/types/coercions/params.rb
194
176
  - lib/dry/types/compat.rb
195
177
  - lib/dry/types/compiler.rb
178
+ - lib/dry/types/composition.rb
196
179
  - lib/dry/types/constrained.rb
197
180
  - lib/dry/types/constrained/coercible.rb
198
181
  - lib/dry/types/constraints.rb
@@ -211,7 +194,9 @@ files:
211
194
  - lib/dry/types/fn_container.rb
212
195
  - lib/dry/types/hash.rb
213
196
  - lib/dry/types/hash/constructor.rb
197
+ - lib/dry/types/implication.rb
214
198
  - lib/dry/types/inflector.rb
199
+ - lib/dry/types/intersection.rb
215
200
  - lib/dry/types/json.rb
216
201
  - lib/dry/types/lax.rb
217
202
  - lib/dry/types/map.rb
@@ -225,6 +210,7 @@ files:
225
210
  - lib/dry/types/primitive_inferrer.rb
226
211
  - lib/dry/types/printable.rb
227
212
  - lib/dry/types/printer.rb
213
+ - lib/dry/types/printer/composition.rb
228
214
  - lib/dry/types/result.rb
229
215
  - lib/dry/types/schema.rb
230
216
  - lib/dry/types/schema/key.rb
@@ -237,7 +223,7 @@ licenses:
237
223
  - MIT
238
224
  metadata:
239
225
  allowed_push_host: https://rubygems.org
240
- changelog_uri: https://github.com/dry-rb/dry-types/blob/master/CHANGELOG.md
226
+ changelog_uri: https://github.com/dry-rb/dry-types/blob/main/CHANGELOG.md
241
227
  source_code_uri: https://github.com/dry-rb/dry-types
242
228
  bug_tracker_uri: https://github.com/dry-rb/dry-types/issues
243
229
  post_install_message:
@@ -248,14 +234,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
248
234
  requirements:
249
235
  - - ">="
250
236
  - !ruby/object:Gem::Version
251
- version: 2.5.0
237
+ version: '3.0'
252
238
  required_rubygems_version: !ruby/object:Gem::Requirement
253
239
  requirements:
254
240
  - - ">="
255
241
  - !ruby/object:Gem::Version
256
242
  version: '0'
257
243
  requirements: []
258
- rubygems_version: 3.1.4
244
+ rubygems_version: 3.3.26
259
245
  signing_key:
260
246
  specification_version: 4
261
247
  summary: Type system for Ruby supporting coercions, constraints and complex types