fear 0.11.0 → 1.0.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 (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