fear 0.11.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +0 -1
  3. data/.rubocop.yml +18 -0
  4. data/.travis.yml +0 -3
  5. data/CHANGELOG.md +12 -1
  6. data/Gemfile +1 -0
  7. data/{gemfiles/dry_equalizer_0.2.1.gemfile.lock → Gemfile.lock} +21 -12
  8. data/README.md +594 -241
  9. data/Rakefile +166 -219
  10. data/benchmarks/README.md +1 -0
  11. data/benchmarks/dry_do_vs_fear_for.txt +11 -0
  12. data/benchmarks/dry_some_fmap_vs_fear_some_map.txt +11 -0
  13. data/benchmarks/factorial.txt +16 -0
  14. data/benchmarks/fear_gaurd_and1_vs_new.txt +13 -0
  15. data/benchmarks/fear_gaurd_and2_vs_and.txt +13 -0
  16. data/benchmarks/fear_gaurd_and3_vs_and_and.txt +13 -0
  17. data/benchmarks/fear_pattern_extracting_with_vs_without_cache.txt +11 -0
  18. data/benchmarks/fear_pattern_matching_construction_vs_execution.txt +13 -0
  19. data/benchmarks/pattern_matching_dry_vs_qo_vs_fear_try.txt +14 -0
  20. data/benchmarks/pattern_matching_qo_vs_fear_pattern_extraction.txt +11 -0
  21. data/benchmarks/pattern_matching_qo_vs_fear_try_execution.txt +11 -0
  22. data/examples/pattern_extracting.rb +15 -0
  23. data/examples/pattern_matching_binary_tree_set.rb +96 -0
  24. data/examples/pattern_matching_number_in_words.rb +54 -0
  25. data/fear.gemspec +4 -2
  26. data/lib/fear.rb +21 -4
  27. data/lib/fear/either.rb +77 -59
  28. data/lib/fear/either_api.rb +21 -0
  29. data/lib/fear/empty_partial_function.rb +1 -1
  30. data/lib/fear/extractor.rb +108 -0
  31. data/lib/fear/extractor/anonymous_array_splat_matcher.rb +8 -0
  32. data/lib/fear/extractor/any_matcher.rb +15 -0
  33. data/lib/fear/extractor/array_head_matcher.rb +34 -0
  34. data/lib/fear/extractor/array_matcher.rb +38 -0
  35. data/lib/fear/extractor/array_splat_matcher.rb +14 -0
  36. data/lib/fear/extractor/empty_list_matcher.rb +18 -0
  37. data/lib/fear/extractor/extractor_matcher.rb +42 -0
  38. data/lib/fear/extractor/grammar.rb +201 -0
  39. data/lib/fear/extractor/grammar.treetop +129 -0
  40. data/lib/fear/extractor/identifier_matcher.rb +16 -0
  41. data/lib/fear/extractor/matcher.rb +54 -0
  42. data/lib/fear/extractor/matcher/and.rb +36 -0
  43. data/lib/fear/extractor/named_array_splat_matcher.rb +15 -0
  44. data/lib/fear/extractor/pattern.rb +55 -0
  45. data/lib/fear/extractor/typed_identifier_matcher.rb +24 -0
  46. data/lib/fear/extractor/value_matcher.rb +17 -0
  47. data/lib/fear/extractor_api.rb +33 -0
  48. data/lib/fear/failure.rb +32 -10
  49. data/lib/fear/for.rb +14 -69
  50. data/lib/fear/for_api.rb +66 -0
  51. data/lib/fear/future.rb +414 -0
  52. data/lib/fear/future_api.rb +19 -0
  53. data/lib/fear/left.rb +8 -0
  54. data/lib/fear/none.rb +17 -8
  55. data/lib/fear/option.rb +55 -49
  56. data/lib/fear/option_api.rb +38 -0
  57. data/lib/fear/partial_function.rb +9 -12
  58. data/lib/fear/partial_function/empty.rb +1 -1
  59. data/lib/fear/partial_function/guard.rb +8 -20
  60. data/lib/fear/partial_function/lifted.rb +1 -0
  61. data/lib/fear/partial_function_class.rb +10 -0
  62. data/lib/fear/pattern_match.rb +10 -0
  63. data/lib/fear/pattern_matching_api.rb +35 -11
  64. data/lib/fear/promise.rb +87 -0
  65. data/lib/fear/right.rb +8 -0
  66. data/lib/fear/some.rb +22 -3
  67. data/lib/fear/success.rb +22 -1
  68. data/lib/fear/try.rb +82 -67
  69. data/lib/fear/try_api.rb +31 -0
  70. data/lib/fear/unit.rb +28 -0
  71. data/lib/fear/version.rb +1 -1
  72. data/spec/fear/done_spec.rb +3 -3
  73. data/spec/fear/either/mixin_spec.rb +15 -0
  74. data/spec/fear/either_pattern_match_spec.rb +10 -12
  75. data/spec/fear/extractor/array_matcher_spec.rb +228 -0
  76. data/spec/fear/extractor/extractor_matcher_spec.rb +151 -0
  77. data/spec/fear/extractor/grammar_array_spec.rb +23 -0
  78. data/spec/fear/extractor/identified_matcher_spec.rb +47 -0
  79. data/spec/fear/extractor/identifier_matcher_spec.rb +66 -0
  80. data/spec/fear/extractor/pattern_spec.rb +32 -0
  81. data/spec/fear/extractor/typed_identifier_matcher_spec.rb +62 -0
  82. data/spec/fear/extractor/value_matcher_number_spec.rb +77 -0
  83. data/spec/fear/extractor/value_matcher_string_spec.rb +86 -0
  84. data/spec/fear/extractor/value_matcher_symbol_spec.rb +69 -0
  85. data/spec/fear/extractor_api_spec.rb +113 -0
  86. data/spec/fear/extractor_spec.rb +59 -0
  87. data/spec/fear/failure_spec.rb +73 -13
  88. data/spec/fear/for_spec.rb +35 -35
  89. data/spec/fear/future_spec.rb +466 -0
  90. data/spec/fear/guard_spec.rb +4 -4
  91. data/spec/fear/left_spec.rb +40 -14
  92. data/spec/fear/none_spec.rb +28 -12
  93. data/spec/fear/option/mixin_spec.rb +37 -0
  94. data/spec/fear/option_pattern_match_spec.rb +7 -9
  95. data/spec/fear/partial_function_spec.rb +25 -3
  96. data/spec/fear/pattern_match_spec.rb +33 -1
  97. data/spec/fear/promise_spec.rb +94 -0
  98. data/spec/fear/right_spec.rb +37 -9
  99. data/spec/fear/some_spec.rb +32 -6
  100. data/spec/fear/success_spec.rb +32 -4
  101. data/spec/fear/try/mixin_spec.rb +17 -0
  102. data/spec/fear/try_pattern_match_spec.rb +8 -10
  103. data/spec/spec_helper.rb +1 -1
  104. metadata +115 -20
  105. data/Appraisals +0 -32
  106. data/gemfiles/dry_equalizer_0.1.0.gemfile +0 -8
  107. data/gemfiles/dry_equalizer_0.1.0.gemfile.lock +0 -82
  108. data/gemfiles/dry_equalizer_0.2.1.gemfile +0 -8
  109. data/lib/fear/done.rb +0 -22
  110. data/spec/fear/option_spec.rb +0 -15
@@ -1,9 +1,9 @@
1
1
  RSpec.describe Fear::Right do
2
2
  it_behaves_like Fear::RightBiased::Right do
3
- let(:right) { Right('value') }
3
+ let(:right) { Fear.right('value') }
4
4
  end
5
5
 
6
- let(:right) { Right('value') }
6
+ let(:right) { Fear.right('value') }
7
7
 
8
8
  describe '#right?' do
9
9
  subject { right }
@@ -27,13 +27,13 @@ RSpec.describe Fear::Right do
27
27
  context 'predicate evaluates to false and default is a proc' do
28
28
  let(:predicate) { ->(v) { v != 'value' } }
29
29
  let(:default) { -> { -1 } }
30
- it { is_expected.to eq(Left(-1)) }
30
+ it { is_expected.to eq(Fear.left(-1)) }
31
31
  end
32
32
 
33
33
  context 'predicate evaluates to false and default is not a proc' do
34
34
  let(:predicate) { ->(v) { v != 'value' } }
35
35
  let(:default) { -1 }
36
- it { is_expected.to eq(Left(-1)) }
36
+ it { is_expected.to eq(Fear.left(-1)) }
37
37
  end
38
38
  end
39
39
 
@@ -47,7 +47,7 @@ RSpec.describe Fear::Right do
47
47
 
48
48
  context 'predicate evaluates to false' do
49
49
  let(:predicate) { ->(v) { v != 'value' } }
50
- it { is_expected.to eq(Left('value')) }
50
+ it { is_expected.to eq(Fear.left('value')) }
51
51
  end
52
52
  end
53
53
 
@@ -56,7 +56,7 @@ RSpec.describe Fear::Right do
56
56
 
57
57
  context 'predicate evaluates to true' do
58
58
  let(:predicate) { ->(v) { v == 'value' } }
59
- it { is_expected.to eq(Left('value')) }
59
+ it { is_expected.to eq(Fear.left('value')) }
60
60
  end
61
61
 
62
62
  context 'predicate evaluates to false' do
@@ -67,7 +67,7 @@ RSpec.describe Fear::Right do
67
67
 
68
68
  describe '#swap' do
69
69
  subject { right.swap }
70
- it { is_expected.to eq(Left('value')) }
70
+ it { is_expected.to eq(Fear.left('value')) }
71
71
  end
72
72
 
73
73
  describe '#reduce' do
@@ -84,7 +84,7 @@ RSpec.describe Fear::Right do
84
84
  describe '#join_right' do
85
85
  context 'value is Either' do
86
86
  subject { described_class.new(value).join_right }
87
- let(:value) { Left('error') }
87
+ let(:value) { Fear.left('error') }
88
88
 
89
89
  it 'returns value' do
90
90
  is_expected.to eq(value)
@@ -103,7 +103,7 @@ RSpec.describe Fear::Right do
103
103
  describe '#join_left' do
104
104
  context 'value is Either' do
105
105
  subject { either.join_left }
106
- let(:either) { described_class.new(Left('error')) }
106
+ let(:either) { described_class.new(Fear.left('error')) }
107
107
 
108
108
  it { is_expected.to eq(either) }
109
109
  end
@@ -152,4 +152,32 @@ RSpec.describe Fear::Right do
152
152
  it { is_expected.to eq(:default) }
153
153
  end
154
154
  end
155
+
156
+ describe '#to_s' do
157
+ subject { right.to_s }
158
+
159
+ it { is_expected.to eq('#<Fear::Right value="value">') }
160
+ end
161
+
162
+ describe 'pattern matching' do
163
+ subject { Fear.xcase('Right(v : Integer)') { |v:| "matched #{v}" }.call_or_else(var) { 'nothing' } }
164
+
165
+ context 'right of int' do
166
+ let(:var) { Fear.right(42) }
167
+
168
+ it { is_expected.to eq('matched 42') }
169
+ end
170
+
171
+ context 'right of string' do
172
+ let(:var) { Fear.right('42') }
173
+
174
+ it { is_expected.to eq('nothing') }
175
+ end
176
+
177
+ context 'not right' do
178
+ let(:var) { '42' }
179
+
180
+ it { is_expected.to eq('nothing') }
181
+ end
182
+ end
155
183
  end
@@ -1,11 +1,9 @@
1
1
  RSpec.describe Fear::Some do
2
- include Fear::Option::Mixin
3
-
4
2
  it_behaves_like Fear::RightBiased::Right do
5
- let(:right) { Some('value') }
3
+ let(:right) { Fear.some('value') }
6
4
  end
7
5
 
8
- subject(:some) { Some(42) }
6
+ subject(:some) { Fear.some(42) }
9
7
 
10
8
  describe '#select' do
11
9
  subject { some.select(&predicate) }
@@ -17,7 +15,7 @@ RSpec.describe Fear::Some do
17
15
 
18
16
  context 'predicate evaluates to false' do
19
17
  let(:predicate) { ->(v) { v < 40 } }
20
- it { is_expected.to eq(None()) }
18
+ it { is_expected.to eq(Fear.none) }
21
19
  end
22
20
  end
23
21
 
@@ -26,7 +24,7 @@ RSpec.describe Fear::Some do
26
24
 
27
25
  context 'predicate evaluates to true' do
28
26
  let(:predicate) { ->(v) { v > 40 } }
29
- it { is_expected.to eq(None()) }
27
+ it { is_expected.to eq(Fear.none) }
30
28
  end
31
29
 
32
30
  context 'predicate evaluates to false' do
@@ -86,4 +84,32 @@ RSpec.describe Fear::Some do
86
84
  it { is_expected.to eq(:default) }
87
85
  end
88
86
  end
87
+
88
+ describe '#to_s' do
89
+ subject { some.to_s }
90
+
91
+ it { is_expected.to eq('#<Fear::Some get=42>') }
92
+ end
93
+
94
+ describe 'pattern matching' do
95
+ subject { Fear.xcase('Some(v : Integer)') { |v:| "matched #{v}" }.call_or_else(var) { 'nothing' } }
96
+
97
+ context 'some of int' do
98
+ let(:var) { Fear.some(42) }
99
+
100
+ it { is_expected.to eq('matched 42') }
101
+ end
102
+
103
+ context 'some of string' do
104
+ let(:var) { Fear.some('42') }
105
+
106
+ it { is_expected.to eq('nothing') }
107
+ end
108
+
109
+ context 'not some' do
110
+ let(:var) { '42' }
111
+
112
+ it { is_expected.to eq('nothing') }
113
+ end
114
+ end
89
115
  end
@@ -1,5 +1,5 @@
1
1
  RSpec.describe Fear::Success do
2
- let(:success) { Success('value') }
2
+ let(:success) { Fear.success('value') }
3
3
 
4
4
  it_behaves_like Fear::RightBiased::Right do
5
5
  let(:right) { success }
@@ -77,18 +77,18 @@ RSpec.describe Fear::Success do
77
77
  end
78
78
 
79
79
  describe '#recover_with' do
80
- subject { success.recover_with { |v| Success(v * 2) } }
80
+ subject { success.recover_with { |v| Fear.success(v * 2) } }
81
81
  it { is_expected.to eq(success) }
82
82
  end
83
83
 
84
84
  describe '#recover' do
85
- subject { success.recover { |v| v * 2 } }
85
+ subject { success.recover { |m| m.case { |v| v * 2 } } }
86
86
  it { is_expected.to eq(success) }
87
87
  end
88
88
 
89
89
  describe '#to_either' do
90
90
  subject { success.to_either }
91
- it { is_expected.to eq(Right('value')) }
91
+ it { is_expected.to eq(Fear.right('value')) }
92
92
  end
93
93
 
94
94
  describe '#match' do
@@ -127,4 +127,32 @@ RSpec.describe Fear::Success do
127
127
  it { is_expected.to eq(:default) }
128
128
  end
129
129
  end
130
+
131
+ describe '#to_s' do
132
+ subject { success.to_s }
133
+
134
+ it { is_expected.to eq('#<Fear::Success value="value">') }
135
+ end
136
+
137
+ describe 'pattern matching' do
138
+ subject { Fear.xcase('Success(v : Integer)') { |v:| "matched #{v}" }.call_or_else(var) { 'nothing' } }
139
+
140
+ context 'success of int' do
141
+ let(:var) { Fear.success(42) }
142
+
143
+ it { is_expected.to eq('matched 42') }
144
+ end
145
+
146
+ context 'success of string' do
147
+ let(:var) { Fear.success('42') }
148
+
149
+ it { is_expected.to eq('nothing') }
150
+ end
151
+
152
+ context 'not success' do
153
+ let(:var) { '42' }
154
+
155
+ it { is_expected.to eq('nothing') }
156
+ end
157
+ end
130
158
  end
@@ -0,0 +1,17 @@
1
+ RSpec.describe Fear::Try::Mixin do
2
+ include Fear::Try::Mixin
3
+
4
+ describe 'Try()' do
5
+ context 'success' do
6
+ subject { Try { 4 / 2 } }
7
+
8
+ it { is_expected.to eq(Fear::Success.new(2)) }
9
+ end
10
+
11
+ context 'failure' do
12
+ subject { Try { 4 / 0 } }
13
+
14
+ it { is_expected.to be_kind_of(Fear::Failure) }
15
+ end
16
+ end
17
+ end
@@ -1,19 +1,17 @@
1
1
  RSpec.describe Fear::TryPatternMatch do
2
- include Fear::Try::Mixin
3
-
4
2
  context 'Success' do
5
3
  let(:matcher) do
6
4
  described_class.new do |m|
7
- m.success(:even?) { |x| "#{x} is even" }
8
- m.success(:odd?) { |x| "#{x} is odd" }
5
+ m.success(:even?.to_proc) { |x| "#{x} is even" }
6
+ m.success(:odd?.to_proc) { |x| "#{x} is odd" }
9
7
  end
10
8
  end
11
9
 
12
10
  it do
13
- expect(matcher.call(Success(4))).to eq('4 is even')
14
- expect(matcher.call(Success(3))).to eq('3 is odd')
11
+ expect(matcher.call(Fear.success(4))).to eq('4 is even')
12
+ expect(matcher.call(Fear.success(3))).to eq('3 is odd')
15
13
  expect do
16
- matcher.call(Failure(RuntimeError.new))
14
+ matcher.call(Fear.failure(RuntimeError.new))
17
15
  end.to raise_error(Fear::MatchError)
18
16
  end
19
17
  end
@@ -27,10 +25,10 @@ RSpec.describe Fear::TryPatternMatch do
27
25
  end
28
26
 
29
27
  it do
30
- expect(matcher.call(Failure(RuntimeError.new))).to eq('RuntimeError is first')
31
- expect(matcher.call(Failure(StandardError.new))).to eq('StandardError is second')
28
+ expect(matcher.call(Fear.failure(RuntimeError.new))).to eq('RuntimeError is first')
29
+ expect(matcher.call(Fear.failure(StandardError.new))).to eq('StandardError is second')
32
30
  expect do
33
- matcher.call(Success(44))
31
+ matcher.call(Fear.success(44))
34
32
  end.to raise_error(Fear::MatchError)
35
33
  end
36
34
  end
@@ -4,9 +4,9 @@
4
4
  require 'fear'
5
5
  require File.expand_path('spec/fear/right_biased/right')
6
6
  require File.expand_path('spec/fear/right_biased/left')
7
+ require 'date'
7
8
 
8
9
  RSpec.configure do |config|
9
- config.include Fear::Mixin
10
10
  # rspec-expectations config goes here. You can use an alternate
11
11
  # assertion/expectation library such as wrong or the stdlib/minitest
12
12
  # assertions if you prefer.
metadata CHANGED
@@ -1,37 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fear
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 1.0.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: 2019-03-11 00:00:00.000000000 Z
11
+ date: 2019-03-29 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.1
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
25
  - !ruby/object:Gem::Version
26
- version: 0.2.1
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: appraisal
28
+ name: treetop
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
- type: :development
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
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'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: dry-matcher
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +94,20 @@ dependencies:
80
94
  - - ">="
81
95
  - !ruby/object:Gem::Version
82
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'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: qo
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -176,30 +204,63 @@ files:
176
204
  - ".rubocop.yml"
177
205
  - ".travis.yml"
178
206
  - ".yardopts"
179
- - Appraisals
180
207
  - CHANGELOG.md
181
208
  - Gemfile
209
+ - Gemfile.lock
182
210
  - LICENSE.txt
183
211
  - README.md
184
212
  - Rakefile
213
+ - benchmarks/README.md
214
+ - benchmarks/dry_do_vs_fear_for.txt
215
+ - benchmarks/dry_some_fmap_vs_fear_some_map.txt
216
+ - benchmarks/factorial.txt
217
+ - benchmarks/fear_gaurd_and1_vs_new.txt
218
+ - benchmarks/fear_gaurd_and2_vs_and.txt
219
+ - benchmarks/fear_gaurd_and3_vs_and_and.txt
220
+ - benchmarks/fear_pattern_extracting_with_vs_without_cache.txt
221
+ - benchmarks/fear_pattern_matching_construction_vs_execution.txt
222
+ - benchmarks/pattern_matching_dry_vs_qo_vs_fear_try.txt
223
+ - benchmarks/pattern_matching_qo_vs_fear_pattern_extraction.txt
224
+ - benchmarks/pattern_matching_qo_vs_fear_try_execution.txt
225
+ - examples/pattern_extracting.rb
226
+ - examples/pattern_matching_binary_tree_set.rb
227
+ - examples/pattern_matching_number_in_words.rb
185
228
  - fear.gemspec
186
- - gemfiles/dry_equalizer_0.1.0.gemfile
187
- - gemfiles/dry_equalizer_0.1.0.gemfile.lock
188
- - gemfiles/dry_equalizer_0.2.1.gemfile
189
- - gemfiles/dry_equalizer_0.2.1.gemfile.lock
190
229
  - lib/fear.rb
191
- - lib/fear/done.rb
192
230
  - lib/fear/either.rb
231
+ - lib/fear/either_api.rb
193
232
  - lib/fear/either_pattern_match.rb
194
233
  - lib/fear/empty_partial_function.rb
234
+ - lib/fear/extractor.rb
235
+ - lib/fear/extractor/anonymous_array_splat_matcher.rb
236
+ - lib/fear/extractor/any_matcher.rb
237
+ - lib/fear/extractor/array_head_matcher.rb
238
+ - lib/fear/extractor/array_matcher.rb
239
+ - lib/fear/extractor/array_splat_matcher.rb
240
+ - lib/fear/extractor/empty_list_matcher.rb
241
+ - lib/fear/extractor/extractor_matcher.rb
242
+ - lib/fear/extractor/grammar.rb
243
+ - lib/fear/extractor/grammar.treetop
244
+ - lib/fear/extractor/identifier_matcher.rb
245
+ - lib/fear/extractor/matcher.rb
246
+ - lib/fear/extractor/matcher/and.rb
247
+ - lib/fear/extractor/named_array_splat_matcher.rb
248
+ - lib/fear/extractor/pattern.rb
249
+ - lib/fear/extractor/typed_identifier_matcher.rb
250
+ - lib/fear/extractor/value_matcher.rb
251
+ - lib/fear/extractor_api.rb
195
252
  - lib/fear/failure.rb
196
253
  - lib/fear/failure_pattern_match.rb
197
254
  - lib/fear/for.rb
255
+ - lib/fear/for_api.rb
256
+ - lib/fear/future.rb
257
+ - lib/fear/future_api.rb
198
258
  - lib/fear/left.rb
199
259
  - lib/fear/left_pattern_match.rb
200
260
  - lib/fear/none.rb
201
261
  - lib/fear/none_pattern_match.rb
202
262
  - lib/fear/option.rb
263
+ - lib/fear/option_api.rb
203
264
  - lib/fear/option_pattern_match.rb
204
265
  - lib/fear/partial_function.rb
205
266
  - lib/fear/partial_function/and_then.rb
@@ -215,6 +276,7 @@ files:
215
276
  - lib/fear/partial_function_class.rb
216
277
  - lib/fear/pattern_match.rb
217
278
  - lib/fear/pattern_matching_api.rb
279
+ - lib/fear/promise.rb
218
280
  - lib/fear/right.rb
219
281
  - lib/fear/right_biased.rb
220
282
  - lib/fear/right_pattern_match.rb
@@ -223,29 +285,47 @@ files:
223
285
  - lib/fear/success.rb
224
286
  - lib/fear/success_pattern_match.rb
225
287
  - lib/fear/try.rb
288
+ - lib/fear/try_api.rb
226
289
  - lib/fear/try_pattern_match.rb
290
+ - lib/fear/unit.rb
227
291
  - lib/fear/utils.rb
228
292
  - lib/fear/version.rb
229
293
  - spec/fear/done_spec.rb
294
+ - spec/fear/either/mixin_spec.rb
230
295
  - spec/fear/either_pattern_match_spec.rb
296
+ - spec/fear/extractor/array_matcher_spec.rb
297
+ - spec/fear/extractor/extractor_matcher_spec.rb
298
+ - spec/fear/extractor/grammar_array_spec.rb
299
+ - spec/fear/extractor/identified_matcher_spec.rb
300
+ - spec/fear/extractor/identifier_matcher_spec.rb
301
+ - spec/fear/extractor/pattern_spec.rb
302
+ - spec/fear/extractor/typed_identifier_matcher_spec.rb
303
+ - spec/fear/extractor/value_matcher_number_spec.rb
304
+ - spec/fear/extractor/value_matcher_string_spec.rb
305
+ - spec/fear/extractor/value_matcher_symbol_spec.rb
306
+ - spec/fear/extractor_api_spec.rb
307
+ - spec/fear/extractor_spec.rb
231
308
  - spec/fear/failure_spec.rb
232
309
  - spec/fear/for_spec.rb
310
+ - spec/fear/future_spec.rb
233
311
  - spec/fear/guard_spec.rb
234
312
  - spec/fear/left_spec.rb
235
313
  - spec/fear/none_spec.rb
314
+ - spec/fear/option/mixin_spec.rb
236
315
  - spec/fear/option_pattern_match_spec.rb
237
- - spec/fear/option_spec.rb
238
316
  - spec/fear/partial_function/empty_spec.rb
239
317
  - spec/fear/partial_function_and_then_spec.rb
240
318
  - spec/fear/partial_function_composition_spec.rb
241
319
  - spec/fear/partial_function_or_else_spec.rb
242
320
  - spec/fear/partial_function_spec.rb
243
321
  - spec/fear/pattern_match_spec.rb
322
+ - spec/fear/promise_spec.rb
244
323
  - spec/fear/right_biased/left.rb
245
324
  - spec/fear/right_biased/right.rb
246
325
  - spec/fear/right_spec.rb
247
326
  - spec/fear/some_spec.rb
248
327
  - spec/fear/success_spec.rb
328
+ - spec/fear/try/mixin_spec.rb
249
329
  - spec/fear/try_pattern_match_spec.rb
250
330
  - spec/fear/utils_spec.rb
251
331
  - spec/spec_helper.rb
@@ -256,7 +336,7 @@ metadata: {}
256
336
  post_install_message: |2
257
337
  Fear v0.11.0 introduces backwards-incompatible changes.
258
338
  Please see https://github.com/bolshakov/fear/blob/master/CHANGELOG.md#0110 for details.
259
- Successfully installed fear-0.11.0
339
+ Successfully installed fear-1.0.0
260
340
  rdoc_options: []
261
341
  require_paths:
262
342
  - lib
@@ -271,32 +351,47 @@ required_rubygems_version: !ruby/object:Gem::Requirement
271
351
  - !ruby/object:Gem::Version
272
352
  version: '0'
273
353
  requirements: []
274
- rubyforge_project:
275
- rubygems_version: 2.6.11
354
+ rubygems_version: 3.0.1
276
355
  signing_key:
277
356
  specification_version: 4
278
357
  summary: "%q{Ruby port of some Scala's monads.}"
279
358
  test_files:
280
359
  - spec/fear/done_spec.rb
360
+ - spec/fear/either/mixin_spec.rb
281
361
  - spec/fear/either_pattern_match_spec.rb
362
+ - spec/fear/extractor/array_matcher_spec.rb
363
+ - spec/fear/extractor/extractor_matcher_spec.rb
364
+ - spec/fear/extractor/grammar_array_spec.rb
365
+ - spec/fear/extractor/identified_matcher_spec.rb
366
+ - spec/fear/extractor/identifier_matcher_spec.rb
367
+ - spec/fear/extractor/pattern_spec.rb
368
+ - spec/fear/extractor/typed_identifier_matcher_spec.rb
369
+ - spec/fear/extractor/value_matcher_number_spec.rb
370
+ - spec/fear/extractor/value_matcher_string_spec.rb
371
+ - spec/fear/extractor/value_matcher_symbol_spec.rb
372
+ - spec/fear/extractor_api_spec.rb
373
+ - spec/fear/extractor_spec.rb
282
374
  - spec/fear/failure_spec.rb
283
375
  - spec/fear/for_spec.rb
376
+ - spec/fear/future_spec.rb
284
377
  - spec/fear/guard_spec.rb
285
378
  - spec/fear/left_spec.rb
286
379
  - spec/fear/none_spec.rb
380
+ - spec/fear/option/mixin_spec.rb
287
381
  - spec/fear/option_pattern_match_spec.rb
288
- - spec/fear/option_spec.rb
289
382
  - spec/fear/partial_function/empty_spec.rb
290
383
  - spec/fear/partial_function_and_then_spec.rb
291
384
  - spec/fear/partial_function_composition_spec.rb
292
385
  - spec/fear/partial_function_or_else_spec.rb
293
386
  - spec/fear/partial_function_spec.rb
294
387
  - spec/fear/pattern_match_spec.rb
388
+ - spec/fear/promise_spec.rb
295
389
  - spec/fear/right_biased/left.rb
296
390
  - spec/fear/right_biased/right.rb
297
391
  - spec/fear/right_spec.rb
298
392
  - spec/fear/some_spec.rb
299
393
  - spec/fear/success_spec.rb
394
+ - spec/fear/try/mixin_spec.rb
300
395
  - spec/fear/try_pattern_match_spec.rb
301
396
  - spec/fear/utils_spec.rb
302
397
  - spec/spec_helper.rb