fear 0.9.0 → 1.2.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.
Files changed (155) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/rubocop.yml +39 -0
  3. data/.github/workflows/spec.yml +42 -0
  4. data/.gitignore +0 -1
  5. data/.rubocop.yml +4 -12
  6. data/.simplecov +17 -0
  7. data/CHANGELOG.md +40 -0
  8. data/Gemfile +5 -2
  9. data/Gemfile.lock +130 -0
  10. data/LICENSE.txt +1 -1
  11. data/README.md +1293 -97
  12. data/Rakefile +369 -1
  13. data/benchmarks/README.md +1 -0
  14. data/benchmarks/dry_do_vs_fear_for.txt +11 -0
  15. data/benchmarks/dry_some_fmap_vs_fear_some_map.txt +11 -0
  16. data/benchmarks/factorial.txt +16 -0
  17. data/benchmarks/fear_gaurd_and1_vs_new.txt +13 -0
  18. data/benchmarks/fear_gaurd_and2_vs_and.txt +13 -0
  19. data/benchmarks/fear_gaurd_and3_vs_and_and.txt +13 -0
  20. data/benchmarks/fear_pattern_extracting_with_vs_without_cache.txt +11 -0
  21. data/benchmarks/fear_pattern_matching_construction_vs_execution.txt +13 -0
  22. data/benchmarks/pattern_matching_dry_vs_qo_vs_fear_try.txt +14 -0
  23. data/benchmarks/pattern_matching_qo_vs_fear_pattern_extraction.txt +11 -0
  24. data/benchmarks/pattern_matching_qo_vs_fear_try_execution.txt +11 -0
  25. data/examples/pattern_extracting.rb +17 -0
  26. data/examples/pattern_extracting_ruby2.7.rb +15 -0
  27. data/examples/pattern_matching_binary_tree_set.rb +101 -0
  28. data/examples/pattern_matching_number_in_words.rb +60 -0
  29. data/fear.gemspec +34 -23
  30. data/lib/dry/types/fear.rb +8 -0
  31. data/lib/dry/types/fear/option.rb +125 -0
  32. data/lib/fear.rb +65 -15
  33. data/lib/fear/await.rb +33 -0
  34. data/lib/fear/awaitable.rb +28 -0
  35. data/lib/fear/either.rb +131 -71
  36. data/lib/fear/either_api.rb +23 -0
  37. data/lib/fear/either_pattern_match.rb +53 -0
  38. data/lib/fear/empty_partial_function.rb +38 -0
  39. data/lib/fear/extractor.rb +112 -0
  40. data/lib/fear/extractor/anonymous_array_splat_matcher.rb +10 -0
  41. data/lib/fear/extractor/any_matcher.rb +17 -0
  42. data/lib/fear/extractor/array_head_matcher.rb +36 -0
  43. data/lib/fear/extractor/array_matcher.rb +40 -0
  44. data/lib/fear/extractor/array_splat_matcher.rb +16 -0
  45. data/lib/fear/extractor/empty_list_matcher.rb +20 -0
  46. data/lib/fear/extractor/extractor_matcher.rb +44 -0
  47. data/lib/fear/extractor/grammar.rb +203 -0
  48. data/lib/fear/extractor/grammar.treetop +129 -0
  49. data/lib/fear/extractor/identifier_matcher.rb +18 -0
  50. data/lib/fear/extractor/matcher.rb +53 -0
  51. data/lib/fear/extractor/matcher/and.rb +38 -0
  52. data/lib/fear/extractor/named_array_splat_matcher.rb +17 -0
  53. data/lib/fear/extractor/pattern.rb +58 -0
  54. data/lib/fear/extractor/typed_identifier_matcher.rb +26 -0
  55. data/lib/fear/extractor/value_matcher.rb +19 -0
  56. data/lib/fear/extractor_api.rb +35 -0
  57. data/lib/fear/failure.rb +46 -14
  58. data/lib/fear/failure_pattern_match.rb +10 -0
  59. data/lib/fear/for.rb +37 -95
  60. data/lib/fear/for_api.rb +68 -0
  61. data/lib/fear/future.rb +497 -0
  62. data/lib/fear/future_api.rb +21 -0
  63. data/lib/fear/left.rb +19 -2
  64. data/lib/fear/left_pattern_match.rb +11 -0
  65. data/lib/fear/none.rb +67 -3
  66. data/lib/fear/none_pattern_match.rb +14 -0
  67. data/lib/fear/option.rb +120 -56
  68. data/lib/fear/option_api.rb +40 -0
  69. data/lib/fear/option_pattern_match.rb +48 -0
  70. data/lib/fear/partial_function.rb +176 -0
  71. data/lib/fear/partial_function/and_then.rb +50 -0
  72. data/lib/fear/partial_function/any.rb +28 -0
  73. data/lib/fear/partial_function/combined.rb +53 -0
  74. data/lib/fear/partial_function/empty.rb +10 -0
  75. data/lib/fear/partial_function/guard.rb +80 -0
  76. data/lib/fear/partial_function/guard/and.rb +38 -0
  77. data/lib/fear/partial_function/guard/and3.rb +41 -0
  78. data/lib/fear/partial_function/guard/or.rb +38 -0
  79. data/lib/fear/partial_function/lifted.rb +23 -0
  80. data/lib/fear/partial_function/or_else.rb +64 -0
  81. data/lib/fear/partial_function_class.rb +38 -0
  82. data/lib/fear/pattern_match.rb +114 -0
  83. data/lib/fear/pattern_matching_api.rb +137 -0
  84. data/lib/fear/promise.rb +95 -0
  85. data/lib/fear/right.rb +20 -2
  86. data/lib/fear/right_biased.rb +6 -14
  87. data/lib/fear/right_pattern_match.rb +11 -0
  88. data/lib/fear/some.rb +55 -3
  89. data/lib/fear/some_pattern_match.rb +13 -0
  90. data/lib/fear/struct.rb +248 -0
  91. data/lib/fear/success.rb +35 -5
  92. data/lib/fear/success_pattern_match.rb +12 -0
  93. data/lib/fear/try.rb +136 -79
  94. data/lib/fear/try_api.rb +33 -0
  95. data/lib/fear/try_pattern_match.rb +33 -0
  96. data/lib/fear/unit.rb +32 -0
  97. data/lib/fear/utils.rb +39 -14
  98. data/lib/fear/version.rb +4 -1
  99. data/spec/dry/types/fear/option/constrained_spec.rb +22 -0
  100. data/spec/dry/types/fear/option/core_spec.rb +77 -0
  101. data/spec/dry/types/fear/option/default_spec.rb +21 -0
  102. data/spec/dry/types/fear/option/hash_spec.rb +58 -0
  103. data/spec/dry/types/fear/option/option_spec.rb +97 -0
  104. data/spec/fear/awaitable_spec.rb +17 -0
  105. data/spec/fear/done_spec.rb +8 -6
  106. data/spec/fear/either/mixin_spec.rb +17 -0
  107. data/spec/fear/either_pattern_match_spec.rb +37 -0
  108. data/spec/fear/either_pattern_matching_spec.rb +28 -0
  109. data/spec/fear/extractor/array_matcher_spec.rb +230 -0
  110. data/spec/fear/extractor/extractor_matcher_spec.rb +153 -0
  111. data/spec/fear/extractor/grammar_array_spec.rb +25 -0
  112. data/spec/fear/extractor/identified_matcher_spec.rb +49 -0
  113. data/spec/fear/extractor/identifier_matcher_spec.rb +68 -0
  114. data/spec/fear/extractor/pattern_spec.rb +34 -0
  115. data/spec/fear/extractor/typed_identifier_matcher_spec.rb +64 -0
  116. data/spec/fear/extractor/value_matcher_number_spec.rb +79 -0
  117. data/spec/fear/extractor/value_matcher_string_spec.rb +88 -0
  118. data/spec/fear/extractor/value_matcher_symbol_spec.rb +71 -0
  119. data/spec/fear/extractor_api_spec.rb +115 -0
  120. data/spec/fear/extractor_spec.rb +61 -0
  121. data/spec/fear/failure_spec.rb +145 -45
  122. data/spec/fear/for_spec.rb +57 -67
  123. data/spec/fear/future_spec.rb +691 -0
  124. data/spec/fear/guard_spec.rb +103 -0
  125. data/spec/fear/left_spec.rb +112 -46
  126. data/spec/fear/none_spec.rb +114 -16
  127. data/spec/fear/option/mixin_spec.rb +39 -0
  128. data/spec/fear/option_pattern_match_spec.rb +35 -0
  129. data/spec/fear/option_pattern_matching_spec.rb +34 -0
  130. data/spec/fear/option_spec.rb +121 -8
  131. data/spec/fear/partial_function/empty_spec.rb +38 -0
  132. data/spec/fear/partial_function_and_then_spec.rb +147 -0
  133. data/spec/fear/partial_function_composition_spec.rb +82 -0
  134. data/spec/fear/partial_function_or_else_spec.rb +276 -0
  135. data/spec/fear/partial_function_spec.rb +239 -0
  136. data/spec/fear/pattern_match_spec.rb +93 -0
  137. data/spec/fear/pattern_matching_api_spec.rb +31 -0
  138. data/spec/fear/promise_spec.rb +96 -0
  139. data/spec/fear/right_biased/left.rb +29 -32
  140. data/spec/fear/right_biased/right.rb +51 -54
  141. data/spec/fear/right_spec.rb +109 -41
  142. data/spec/fear/some_spec.rb +80 -15
  143. data/spec/fear/success_spec.rb +99 -32
  144. data/spec/fear/try/mixin_spec.rb +19 -0
  145. data/spec/fear/try_pattern_match_spec.rb +37 -0
  146. data/spec/fear/try_pattern_matching_spec.rb +34 -0
  147. data/spec/fear/utils_spec.rb +16 -14
  148. data/spec/spec_helper.rb +13 -7
  149. data/spec/struct_pattern_matching_spec.rb +36 -0
  150. data/spec/struct_spec.rb +226 -0
  151. data/spec/support/dry_types.rb +6 -0
  152. metadata +320 -29
  153. data/.travis.yml +0 -9
  154. data/lib/fear/done.rb +0 -22
  155. data/lib/fear/for/evaluation_context.rb +0 -91
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "dry/types/fear"
4
+ require "dry/types/spec/types"
5
+
6
+ Dry::Types.load_extensions(:fear_option)
metadata CHANGED
@@ -1,57 +1,141 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fear
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tema Bolshakov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-21 00:00:00.000000000 Z
11
+ date: 2020-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: dry-equalizer
14
+ name: lru_redux
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.0
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: treetop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: 0.2.0
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: benchmark-ips
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: bundler
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
- - - "~>"
59
+ - - ">="
32
60
  - !ruby/object:Gem::Version
33
- version: '1.7'
61
+ version: '0'
34
62
  type: :development
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
- - - "~>"
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: concurrent-ruby
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: dry-matcher
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: dry-monads
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: qo
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
39
123
  - !ruby/object:Gem::Version
40
- version: '1.7'
124
+ version: '0'
41
125
  - !ruby/object:Gem::Dependency
42
126
  name: rake
43
127
  requirement: !ruby/object:Gem::Requirement
44
128
  requirements:
45
129
  - - "~>"
46
130
  - !ruby/object:Gem::Version
47
- version: '10.0'
131
+ version: '13.0'
48
132
  type: :development
49
133
  prerelease: false
50
134
  version_requirements: !ruby/object:Gem::Requirement
51
135
  requirements:
52
136
  - - "~>"
53
137
  - !ruby/object:Gem::Version
54
- version: '10.0'
138
+ version: '13.0'
55
139
  - !ruby/object:Gem::Dependency
56
140
  name: rspec
57
141
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +151,35 @@ dependencies:
67
151
  - !ruby/object:Gem::Version
68
152
  version: '3.1'
69
153
  - !ruby/object:Gem::Dependency
70
- name: spbtv_code_style
154
+ name: rubocop-rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 1.34.0
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 1.34.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '='
172
+ - !ruby/object:Gem::Version
173
+ version: 1.0.0
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '='
179
+ - !ruby/object:Gem::Version
180
+ version: 1.0.0
181
+ - !ruby/object:Gem::Dependency
182
+ name: ruby_coding_standard
71
183
  requirement: !ruby/object:Gem::Requirement
72
184
  requirements:
73
185
  - - ">="
@@ -81,33 +193,47 @@ dependencies:
81
193
  - !ruby/object:Gem::Version
82
194
  version: '0'
83
195
  - !ruby/object:Gem::Dependency
84
- name: rubocop-rspec
196
+ name: yard
85
197
  requirement: !ruby/object:Gem::Requirement
86
198
  requirements:
87
- - - '='
199
+ - - ">="
88
200
  - !ruby/object:Gem::Version
89
- version: 1.13.0
201
+ version: '0'
90
202
  type: :development
91
203
  prerelease: false
92
204
  version_requirements: !ruby/object:Gem::Requirement
93
205
  requirements:
94
- - - '='
206
+ - - ">="
95
207
  - !ruby/object:Gem::Version
96
- version: 1.13.0
208
+ version: '0'
97
209
  - !ruby/object:Gem::Dependency
98
- name: rubocop
210
+ name: dry-types
99
211
  requirement: !ruby/object:Gem::Requirement
100
212
  requirements:
101
- - - '='
213
+ - - ">="
102
214
  - !ruby/object:Gem::Version
103
- version: 0.47.1
215
+ version: '0'
104
216
  type: :development
105
217
  prerelease: false
106
218
  version_requirements: !ruby/object:Gem::Requirement
107
219
  requirements:
108
- - - '='
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: fear-rspec
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
109
235
  - !ruby/object:Gem::Version
110
- version: 0.47.1
236
+ version: '0'
111
237
  - !ruby/object:Gem::Dependency
112
238
  name: simplecov
113
239
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +248,20 @@ dependencies:
122
248
  - - ">="
123
249
  - !ruby/object:Gem::Version
124
250
  version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: simplecov-lcov
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
125
265
  description: Ruby port of some Scala's monads.
126
266
  email:
127
267
  - abolshakov@spbtv.com
@@ -129,46 +269,158 @@ executables: []
129
269
  extensions: []
130
270
  extra_rdoc_files: []
131
271
  files:
272
+ - ".github/workflows/rubocop.yml"
273
+ - ".github/workflows/spec.yml"
132
274
  - ".gitignore"
133
275
  - ".rspec"
134
276
  - ".rubocop.yml"
135
- - ".travis.yml"
277
+ - ".simplecov"
136
278
  - ".yardopts"
137
279
  - CHANGELOG.md
138
280
  - Gemfile
281
+ - Gemfile.lock
139
282
  - LICENSE.txt
140
283
  - README.md
141
284
  - Rakefile
285
+ - benchmarks/README.md
286
+ - benchmarks/dry_do_vs_fear_for.txt
287
+ - benchmarks/dry_some_fmap_vs_fear_some_map.txt
288
+ - benchmarks/factorial.txt
289
+ - benchmarks/fear_gaurd_and1_vs_new.txt
290
+ - benchmarks/fear_gaurd_and2_vs_and.txt
291
+ - benchmarks/fear_gaurd_and3_vs_and_and.txt
292
+ - benchmarks/fear_pattern_extracting_with_vs_without_cache.txt
293
+ - benchmarks/fear_pattern_matching_construction_vs_execution.txt
294
+ - benchmarks/pattern_matching_dry_vs_qo_vs_fear_try.txt
295
+ - benchmarks/pattern_matching_qo_vs_fear_pattern_extraction.txt
296
+ - benchmarks/pattern_matching_qo_vs_fear_try_execution.txt
297
+ - examples/pattern_extracting.rb
298
+ - examples/pattern_extracting_ruby2.7.rb
299
+ - examples/pattern_matching_binary_tree_set.rb
300
+ - examples/pattern_matching_number_in_words.rb
142
301
  - fear.gemspec
302
+ - lib/dry/types/fear.rb
303
+ - lib/dry/types/fear/option.rb
143
304
  - lib/fear.rb
144
- - lib/fear/done.rb
305
+ - lib/fear/await.rb
306
+ - lib/fear/awaitable.rb
145
307
  - lib/fear/either.rb
308
+ - lib/fear/either_api.rb
309
+ - lib/fear/either_pattern_match.rb
310
+ - lib/fear/empty_partial_function.rb
311
+ - lib/fear/extractor.rb
312
+ - lib/fear/extractor/anonymous_array_splat_matcher.rb
313
+ - lib/fear/extractor/any_matcher.rb
314
+ - lib/fear/extractor/array_head_matcher.rb
315
+ - lib/fear/extractor/array_matcher.rb
316
+ - lib/fear/extractor/array_splat_matcher.rb
317
+ - lib/fear/extractor/empty_list_matcher.rb
318
+ - lib/fear/extractor/extractor_matcher.rb
319
+ - lib/fear/extractor/grammar.rb
320
+ - lib/fear/extractor/grammar.treetop
321
+ - lib/fear/extractor/identifier_matcher.rb
322
+ - lib/fear/extractor/matcher.rb
323
+ - lib/fear/extractor/matcher/and.rb
324
+ - lib/fear/extractor/named_array_splat_matcher.rb
325
+ - lib/fear/extractor/pattern.rb
326
+ - lib/fear/extractor/typed_identifier_matcher.rb
327
+ - lib/fear/extractor/value_matcher.rb
328
+ - lib/fear/extractor_api.rb
146
329
  - lib/fear/failure.rb
330
+ - lib/fear/failure_pattern_match.rb
147
331
  - lib/fear/for.rb
148
- - lib/fear/for/evaluation_context.rb
332
+ - lib/fear/for_api.rb
333
+ - lib/fear/future.rb
334
+ - lib/fear/future_api.rb
149
335
  - lib/fear/left.rb
336
+ - lib/fear/left_pattern_match.rb
150
337
  - lib/fear/none.rb
338
+ - lib/fear/none_pattern_match.rb
151
339
  - lib/fear/option.rb
340
+ - lib/fear/option_api.rb
341
+ - lib/fear/option_pattern_match.rb
342
+ - lib/fear/partial_function.rb
343
+ - lib/fear/partial_function/and_then.rb
344
+ - lib/fear/partial_function/any.rb
345
+ - lib/fear/partial_function/combined.rb
346
+ - lib/fear/partial_function/empty.rb
347
+ - lib/fear/partial_function/guard.rb
348
+ - lib/fear/partial_function/guard/and.rb
349
+ - lib/fear/partial_function/guard/and3.rb
350
+ - lib/fear/partial_function/guard/or.rb
351
+ - lib/fear/partial_function/lifted.rb
352
+ - lib/fear/partial_function/or_else.rb
353
+ - lib/fear/partial_function_class.rb
354
+ - lib/fear/pattern_match.rb
355
+ - lib/fear/pattern_matching_api.rb
356
+ - lib/fear/promise.rb
152
357
  - lib/fear/right.rb
153
358
  - lib/fear/right_biased.rb
359
+ - lib/fear/right_pattern_match.rb
154
360
  - lib/fear/some.rb
361
+ - lib/fear/some_pattern_match.rb
362
+ - lib/fear/struct.rb
155
363
  - lib/fear/success.rb
364
+ - lib/fear/success_pattern_match.rb
156
365
  - lib/fear/try.rb
366
+ - lib/fear/try_api.rb
367
+ - lib/fear/try_pattern_match.rb
368
+ - lib/fear/unit.rb
157
369
  - lib/fear/utils.rb
158
370
  - lib/fear/version.rb
371
+ - spec/dry/types/fear/option/constrained_spec.rb
372
+ - spec/dry/types/fear/option/core_spec.rb
373
+ - spec/dry/types/fear/option/default_spec.rb
374
+ - spec/dry/types/fear/option/hash_spec.rb
375
+ - spec/dry/types/fear/option/option_spec.rb
376
+ - spec/fear/awaitable_spec.rb
159
377
  - spec/fear/done_spec.rb
378
+ - spec/fear/either/mixin_spec.rb
379
+ - spec/fear/either_pattern_match_spec.rb
380
+ - spec/fear/either_pattern_matching_spec.rb
381
+ - spec/fear/extractor/array_matcher_spec.rb
382
+ - spec/fear/extractor/extractor_matcher_spec.rb
383
+ - spec/fear/extractor/grammar_array_spec.rb
384
+ - spec/fear/extractor/identified_matcher_spec.rb
385
+ - spec/fear/extractor/identifier_matcher_spec.rb
386
+ - spec/fear/extractor/pattern_spec.rb
387
+ - spec/fear/extractor/typed_identifier_matcher_spec.rb
388
+ - spec/fear/extractor/value_matcher_number_spec.rb
389
+ - spec/fear/extractor/value_matcher_string_spec.rb
390
+ - spec/fear/extractor/value_matcher_symbol_spec.rb
391
+ - spec/fear/extractor_api_spec.rb
392
+ - spec/fear/extractor_spec.rb
160
393
  - spec/fear/failure_spec.rb
161
394
  - spec/fear/for_spec.rb
395
+ - spec/fear/future_spec.rb
396
+ - spec/fear/guard_spec.rb
162
397
  - spec/fear/left_spec.rb
163
398
  - spec/fear/none_spec.rb
399
+ - spec/fear/option/mixin_spec.rb
400
+ - spec/fear/option_pattern_match_spec.rb
401
+ - spec/fear/option_pattern_matching_spec.rb
164
402
  - spec/fear/option_spec.rb
403
+ - spec/fear/partial_function/empty_spec.rb
404
+ - spec/fear/partial_function_and_then_spec.rb
405
+ - spec/fear/partial_function_composition_spec.rb
406
+ - spec/fear/partial_function_or_else_spec.rb
407
+ - spec/fear/partial_function_spec.rb
408
+ - spec/fear/pattern_match_spec.rb
409
+ - spec/fear/pattern_matching_api_spec.rb
410
+ - spec/fear/promise_spec.rb
165
411
  - spec/fear/right_biased/left.rb
166
412
  - spec/fear/right_biased/right.rb
167
413
  - spec/fear/right_spec.rb
168
414
  - spec/fear/some_spec.rb
169
415
  - spec/fear/success_spec.rb
416
+ - spec/fear/try/mixin_spec.rb
417
+ - spec/fear/try_pattern_match_spec.rb
418
+ - spec/fear/try_pattern_matching_spec.rb
170
419
  - spec/fear/utils_spec.rb
171
420
  - spec/spec_helper.rb
421
+ - spec/struct_pattern_matching_spec.rb
422
+ - spec/struct_spec.rb
423
+ - spec/support/dry_types.rb
172
424
  homepage: https://github.com/bolshakov/fear
173
425
  licenses:
174
426
  - MIT
@@ -188,22 +440,61 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
440
  - !ruby/object:Gem::Version
189
441
  version: '0'
190
442
  requirements: []
191
- rubyforge_project:
192
- rubygems_version: 2.6.11
443
+ rubygems_version: 3.1.4
193
444
  signing_key:
194
445
  specification_version: 4
195
446
  summary: "%q{Ruby port of some Scala's monads.}"
196
447
  test_files:
448
+ - spec/dry/types/fear/option/constrained_spec.rb
449
+ - spec/dry/types/fear/option/core_spec.rb
450
+ - spec/dry/types/fear/option/default_spec.rb
451
+ - spec/dry/types/fear/option/hash_spec.rb
452
+ - spec/dry/types/fear/option/option_spec.rb
453
+ - spec/fear/awaitable_spec.rb
197
454
  - spec/fear/done_spec.rb
455
+ - spec/fear/either/mixin_spec.rb
456
+ - spec/fear/either_pattern_match_spec.rb
457
+ - spec/fear/either_pattern_matching_spec.rb
458
+ - spec/fear/extractor/array_matcher_spec.rb
459
+ - spec/fear/extractor/extractor_matcher_spec.rb
460
+ - spec/fear/extractor/grammar_array_spec.rb
461
+ - spec/fear/extractor/identified_matcher_spec.rb
462
+ - spec/fear/extractor/identifier_matcher_spec.rb
463
+ - spec/fear/extractor/pattern_spec.rb
464
+ - spec/fear/extractor/typed_identifier_matcher_spec.rb
465
+ - spec/fear/extractor/value_matcher_number_spec.rb
466
+ - spec/fear/extractor/value_matcher_string_spec.rb
467
+ - spec/fear/extractor/value_matcher_symbol_spec.rb
468
+ - spec/fear/extractor_api_spec.rb
469
+ - spec/fear/extractor_spec.rb
198
470
  - spec/fear/failure_spec.rb
199
471
  - spec/fear/for_spec.rb
472
+ - spec/fear/future_spec.rb
473
+ - spec/fear/guard_spec.rb
200
474
  - spec/fear/left_spec.rb
201
475
  - spec/fear/none_spec.rb
476
+ - spec/fear/option/mixin_spec.rb
477
+ - spec/fear/option_pattern_match_spec.rb
478
+ - spec/fear/option_pattern_matching_spec.rb
202
479
  - spec/fear/option_spec.rb
480
+ - spec/fear/partial_function/empty_spec.rb
481
+ - spec/fear/partial_function_and_then_spec.rb
482
+ - spec/fear/partial_function_composition_spec.rb
483
+ - spec/fear/partial_function_or_else_spec.rb
484
+ - spec/fear/partial_function_spec.rb
485
+ - spec/fear/pattern_match_spec.rb
486
+ - spec/fear/pattern_matching_api_spec.rb
487
+ - spec/fear/promise_spec.rb
203
488
  - spec/fear/right_biased/left.rb
204
489
  - spec/fear/right_biased/right.rb
205
490
  - spec/fear/right_spec.rb
206
491
  - spec/fear/some_spec.rb
207
492
  - spec/fear/success_spec.rb
493
+ - spec/fear/try/mixin_spec.rb
494
+ - spec/fear/try_pattern_match_spec.rb
495
+ - spec/fear/try_pattern_matching_spec.rb
208
496
  - spec/fear/utils_spec.rb
209
497
  - spec/spec_helper.rb
498
+ - spec/struct_pattern_matching_spec.rb
499
+ - spec/struct_spec.rb
500
+ - spec/support/dry_types.rb