functional-light-service 0.5.4 → 6.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.
- checksums.yaml +4 -4
- data/.github/workflows/project-build.yml +35 -11
- data/.rubocop.yml +101 -160
- data/AUDIT-functional-light-service.md +352 -0
- data/CHANGELOG.md +38 -0
- data/README.md +54 -2
- data/audit/bench.rb +99 -0
- data/audit/verify_findings.rb +172 -0
- data/functional-light-service.gemspec +15 -21
- data/lib/functional-light-service/action.rb +97 -101
- data/lib/functional-light-service/configuration.rb +26 -24
- data/lib/functional-light-service/context/key_verifier.rb +124 -118
- data/lib/functional-light-service/context.rb +63 -20
- data/lib/functional-light-service/deprecations.rb +26 -0
- data/lib/functional-light-service/errors.rb +8 -6
- data/lib/functional-light-service/functional/enum.rb +286 -250
- data/lib/functional-light-service/functional/maybe.rb +21 -15
- data/lib/functional-light-service/functional/monad.rb +77 -66
- data/lib/functional-light-service/functional/null.rb +88 -74
- data/lib/functional-light-service/functional/option.rb +100 -97
- data/lib/functional-light-service/functional/result.rb +129 -116
- data/lib/functional-light-service/localization_adapter.rb +48 -47
- data/lib/functional-light-service/organizer/execute.rb +16 -14
- data/lib/functional-light-service/organizer/iterate.rb +30 -25
- data/lib/functional-light-service/organizer/reduce_if.rb +19 -17
- data/lib/functional-light-service/organizer/reduce_until.rb +22 -20
- data/lib/functional-light-service/organizer/scoped_reducable.rb +15 -13
- data/lib/functional-light-service/organizer/with_callback.rb +28 -26
- data/lib/functional-light-service/organizer/with_reducer.rb +81 -77
- data/lib/functional-light-service/organizer/with_reducer_factory.rb +20 -18
- data/lib/functional-light-service/organizer/with_reducer_log_decorator.rb +110 -108
- data/lib/functional-light-service/organizer.rb +114 -114
- data/lib/functional-light-service/testing/context_factory.rb +48 -42
- data/lib/functional-light-service/testing.rb +3 -1
- data/lib/functional-light-service/version.rb +5 -3
- data/lib/functional-light-service.rb +30 -28
- data/spec/acceptance/after_actions_spec.rb +87 -71
- data/spec/acceptance/before_actions_spec.rb +115 -98
- data/spec/acceptance/custom_log_from_organizer_spec.rb +61 -60
- data/spec/acceptance/deprecation_warnings_spec.rb +82 -0
- data/spec/acceptance/fail_spec.rb +52 -50
- data/spec/acceptance/message_localization_spec.rb +119 -118
- data/spec/acceptance/organizer/context_failure_and_skipping_spec.rb +68 -65
- data/spec/acceptance/organizer/reduce_if_spec.rb +89 -89
- data/spec/acceptance/organizer/with_callback_spec.rb +113 -110
- data/spec/acceptance/{not_having_call_method_warning_spec.rb → organizer_entry_point_spec.rb} +10 -7
- data/spec/acceptance/rollback_spec.rb +183 -132
- data/spec/action_expects_and_promises_spec.rb +97 -93
- data/spec/action_promised_keys_spec.rb +126 -122
- data/spec/context_spec.rb +289 -197
- data/spec/examples/controller_spec.rb +63 -63
- data/spec/examples/validate_address_spec.rb +38 -37
- data/spec/lib/deterministic/currify_spec.rb +90 -88
- data/spec/lib/deterministic/null_spec.rb +6 -1
- data/spec/lib/deterministic/option_spec.rb +140 -137
- data/spec/lib/deterministic/result/result_map_spec.rb +155 -154
- data/spec/lib/deterministic/result/result_shared.rb +3 -2
- data/spec/lib/deterministic/result_spec.rb +2 -2
- data/spec/lib/edge_cases_spec.rb +156 -0
- data/spec/lib/enum_spec.rb +1 -1
- data/spec/lib/native_pattern_matching_spec.rb +74 -0
- data/spec/organizer_spec.rb +115 -114
- data/spec/readme_spec.rb +45 -47
- data/spec/sample/calculates_order_tax_action_spec.rb +16 -16
- data/spec/sample/calculates_tax_spec.rb +1 -1
- data/spec/sample/looks_up_tax_percentage_action_spec.rb +55 -55
- data/spec/sample/tax/calculates_order_tax_action.rb +10 -9
- data/spec/sample/tax/looks_up_tax_percentage_action.rb +28 -27
- data/spec/sample/tax/provides_free_shipping_action.rb +11 -10
- data/spec/spec_helper.rb +6 -0
- data/spec/test_doubles.rb +628 -599
- data/spec/testing/context_factory_spec.rb +21 -0
- metadata +45 -161
- data/lib/functional-light-service/organizer/verify_call_method_exists.rb +0 -29
- data/spec/acceptance/include_warning_spec.rb +0 -29
|
@@ -4,6 +4,10 @@ require "test_doubles"
|
|
|
4
4
|
describe "ContextFactory - used with AdditionOrganizer" do
|
|
5
5
|
let(:organizer) { TestDoubles::AdditionOrganizer }
|
|
6
6
|
|
|
7
|
+
after do
|
|
8
|
+
TestDoubles::AdditionOrganizer.before_actions = nil
|
|
9
|
+
end
|
|
10
|
+
|
|
7
11
|
context "when called with the first action" do
|
|
8
12
|
it "does not alter the context" do
|
|
9
13
|
ctx = FunctionalLightService::Testing::ContextFactory
|
|
@@ -52,4 +56,21 @@ describe "ContextFactory - used with AdditionOrganizer" do
|
|
|
52
56
|
expect(context[:_before_actions].length).to eq(1)
|
|
53
57
|
end
|
|
54
58
|
end
|
|
59
|
+
|
|
60
|
+
context "when used repeatedly" do
|
|
61
|
+
it "does not leave its temporary hook on the organizer class" do
|
|
62
|
+
2.times do
|
|
63
|
+
FunctionalLightService::Testing::ContextFactory
|
|
64
|
+
.make_from(organizer)
|
|
65
|
+
.for(TestDoubles::AddsTwoAction)
|
|
66
|
+
.with(1)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
hooks = organizer.instance_variable_get(:@before_actions)
|
|
70
|
+
expect(hooks.nil? || hooks.empty?).to be(true)
|
|
71
|
+
|
|
72
|
+
# e l'organizer continua a funzionare normalmente
|
|
73
|
+
expect(organizer.call(1).fetch(:number)).to eq(7)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
55
76
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: functional-light-service
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 6.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Boscolo Michele
|
|
@@ -13,22 +13,22 @@ dependencies:
|
|
|
13
13
|
name: dry-inflector
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
|
-
- - "~>"
|
|
17
|
-
- !ruby/object:Gem::Version
|
|
18
|
-
version: '0.2'
|
|
19
16
|
- - ">="
|
|
20
17
|
- !ruby/object:Gem::Version
|
|
21
18
|
version: 0.2.1
|
|
19
|
+
- - "<"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '2'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
|
-
- - "~>"
|
|
27
|
-
- !ruby/object:Gem::Version
|
|
28
|
-
version: '0.2'
|
|
29
26
|
- - ">="
|
|
30
27
|
- !ruby/object:Gem::Version
|
|
31
28
|
version: 0.2.1
|
|
29
|
+
- - "<"
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '2'
|
|
32
32
|
- !ruby/object:Gem::Dependency
|
|
33
33
|
name: i18n
|
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -50,207 +50,149 @@ dependencies:
|
|
|
50
50
|
- !ruby/object:Gem::Version
|
|
51
51
|
version: 1.8.11
|
|
52
52
|
- !ruby/object:Gem::Dependency
|
|
53
|
-
name:
|
|
53
|
+
name: logger
|
|
54
54
|
requirement: !ruby/object:Gem::Requirement
|
|
55
55
|
requirements:
|
|
56
56
|
- - "~>"
|
|
57
57
|
- !ruby/object:Gem::Version
|
|
58
|
-
version:
|
|
59
|
-
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: 13.0.6
|
|
62
|
-
type: :development
|
|
58
|
+
version: '1.5'
|
|
59
|
+
type: :runtime
|
|
63
60
|
prerelease: false
|
|
64
61
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
62
|
requirements:
|
|
66
63
|
- - "~>"
|
|
67
64
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
69
|
-
- - ">="
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
version: 13.0.6
|
|
65
|
+
version: '1.5'
|
|
72
66
|
- !ruby/object:Gem::Dependency
|
|
73
|
-
name:
|
|
74
|
-
requirement: !ruby/object:Gem::Requirement
|
|
75
|
-
requirements:
|
|
76
|
-
- - "~>"
|
|
77
|
-
- !ruby/object:Gem::Version
|
|
78
|
-
version: '1.8'
|
|
79
|
-
- - ">="
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: 1.8.11
|
|
82
|
-
type: :development
|
|
83
|
-
prerelease: false
|
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
-
requirements:
|
|
86
|
-
- - "~>"
|
|
87
|
-
- !ruby/object:Gem::Version
|
|
88
|
-
version: '1.8'
|
|
89
|
-
- - ">="
|
|
90
|
-
- !ruby/object:Gem::Version
|
|
91
|
-
version: 1.8.11
|
|
92
|
-
- !ruby/object:Gem::Dependency
|
|
93
|
-
name: dry-inflector
|
|
67
|
+
name: rake
|
|
94
68
|
requirement: !ruby/object:Gem::Requirement
|
|
95
69
|
requirements:
|
|
96
70
|
- - "~>"
|
|
97
71
|
- !ruby/object:Gem::Version
|
|
98
|
-
version: '0
|
|
99
|
-
- - ">="
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
version: 0.2.1
|
|
72
|
+
version: '13.0'
|
|
102
73
|
type: :development
|
|
103
74
|
prerelease: false
|
|
104
75
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
76
|
requirements:
|
|
106
77
|
- - "~>"
|
|
107
78
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: '0
|
|
109
|
-
- - ">="
|
|
110
|
-
- !ruby/object:Gem::Version
|
|
111
|
-
version: 0.2.1
|
|
79
|
+
version: '13.0'
|
|
112
80
|
- !ruby/object:Gem::Dependency
|
|
113
81
|
name: rspec
|
|
114
82
|
requirement: !ruby/object:Gem::Requirement
|
|
115
83
|
requirements:
|
|
116
84
|
- - "~>"
|
|
117
85
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: 3.
|
|
86
|
+
version: '3.13'
|
|
119
87
|
type: :development
|
|
120
88
|
prerelease: false
|
|
121
89
|
version_requirements: !ruby/object:Gem::Requirement
|
|
122
90
|
requirements:
|
|
123
91
|
- - "~>"
|
|
124
92
|
- !ruby/object:Gem::Version
|
|
125
|
-
version: 3.
|
|
126
|
-
- !ruby/object:Gem::Dependency
|
|
127
|
-
name: rspec-mocks
|
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
requirements:
|
|
130
|
-
- - '='
|
|
131
|
-
- !ruby/object:Gem::Version
|
|
132
|
-
version: 3.10.2
|
|
133
|
-
type: :development
|
|
134
|
-
prerelease: false
|
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
136
|
-
requirements:
|
|
137
|
-
- - '='
|
|
138
|
-
- !ruby/object:Gem::Version
|
|
139
|
-
version: 3.10.2
|
|
93
|
+
version: '3.13'
|
|
140
94
|
- !ruby/object:Gem::Dependency
|
|
141
95
|
name: simplecov
|
|
142
96
|
requirement: !ruby/object:Gem::Requirement
|
|
143
97
|
requirements:
|
|
144
98
|
- - "~>"
|
|
145
99
|
- !ruby/object:Gem::Version
|
|
146
|
-
version: 0.
|
|
100
|
+
version: '0.22'
|
|
147
101
|
type: :development
|
|
148
102
|
prerelease: false
|
|
149
103
|
version_requirements: !ruby/object:Gem::Requirement
|
|
150
104
|
requirements:
|
|
151
105
|
- - "~>"
|
|
152
106
|
- !ruby/object:Gem::Version
|
|
153
|
-
version: 0.
|
|
107
|
+
version: '0.22'
|
|
154
108
|
- !ruby/object:Gem::Dependency
|
|
155
109
|
name: simplecov-cobertura
|
|
156
110
|
requirement: !ruby/object:Gem::Requirement
|
|
157
111
|
requirements:
|
|
158
112
|
- - "~>"
|
|
159
113
|
- !ruby/object:Gem::Version
|
|
160
|
-
version:
|
|
114
|
+
version: '3.0'
|
|
161
115
|
type: :development
|
|
162
116
|
prerelease: false
|
|
163
117
|
version_requirements: !ruby/object:Gem::Requirement
|
|
164
118
|
requirements:
|
|
165
119
|
- - "~>"
|
|
166
120
|
- !ruby/object:Gem::Version
|
|
167
|
-
version:
|
|
168
|
-
- !ruby/object:Gem::Dependency
|
|
169
|
-
name: rexml
|
|
170
|
-
requirement: !ruby/object:Gem::Requirement
|
|
171
|
-
requirements:
|
|
172
|
-
- - "<"
|
|
173
|
-
- !ruby/object:Gem::Version
|
|
174
|
-
version: '3.3'
|
|
175
|
-
type: :development
|
|
176
|
-
prerelease: false
|
|
177
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
178
|
-
requirements:
|
|
179
|
-
- - "<"
|
|
180
|
-
- !ruby/object:Gem::Version
|
|
181
|
-
version: '3.3'
|
|
121
|
+
version: '3.0'
|
|
182
122
|
- !ruby/object:Gem::Dependency
|
|
183
123
|
name: rubocop
|
|
184
124
|
requirement: !ruby/object:Gem::Requirement
|
|
185
125
|
requirements:
|
|
186
126
|
- - "~>"
|
|
187
127
|
- !ruby/object:Gem::Version
|
|
188
|
-
version: 1.
|
|
128
|
+
version: '1.75'
|
|
189
129
|
type: :development
|
|
190
130
|
prerelease: false
|
|
191
131
|
version_requirements: !ruby/object:Gem::Requirement
|
|
192
132
|
requirements:
|
|
193
133
|
- - "~>"
|
|
194
134
|
- !ruby/object:Gem::Version
|
|
195
|
-
version: 1.
|
|
135
|
+
version: '1.75'
|
|
196
136
|
- !ruby/object:Gem::Dependency
|
|
197
137
|
name: rubocop-performance
|
|
198
138
|
requirement: !ruby/object:Gem::Requirement
|
|
199
139
|
requirements:
|
|
200
140
|
- - "~>"
|
|
201
141
|
- !ruby/object:Gem::Version
|
|
202
|
-
version: 1.
|
|
142
|
+
version: '1.20'
|
|
203
143
|
type: :development
|
|
204
144
|
prerelease: false
|
|
205
145
|
version_requirements: !ruby/object:Gem::Requirement
|
|
206
146
|
requirements:
|
|
207
147
|
- - "~>"
|
|
208
148
|
- !ruby/object:Gem::Version
|
|
209
|
-
version: 1.
|
|
149
|
+
version: '1.20'
|
|
210
150
|
- !ruby/object:Gem::Dependency
|
|
211
151
|
name: pry
|
|
212
152
|
requirement: !ruby/object:Gem::Requirement
|
|
213
153
|
requirements:
|
|
214
154
|
- - "~>"
|
|
215
155
|
- !ruby/object:Gem::Version
|
|
216
|
-
version: 0.
|
|
156
|
+
version: '0.15'
|
|
217
157
|
type: :development
|
|
218
158
|
prerelease: false
|
|
219
159
|
version_requirements: !ruby/object:Gem::Requirement
|
|
220
160
|
requirements:
|
|
221
161
|
- - "~>"
|
|
222
162
|
- !ruby/object:Gem::Version
|
|
223
|
-
version: 0.
|
|
163
|
+
version: '0.15'
|
|
224
164
|
- !ruby/object:Gem::Dependency
|
|
225
165
|
name: solargraph
|
|
226
166
|
requirement: !ruby/object:Gem::Requirement
|
|
227
167
|
requirements:
|
|
228
168
|
- - "~>"
|
|
229
169
|
- !ruby/object:Gem::Version
|
|
230
|
-
version: 0.
|
|
170
|
+
version: '0.50'
|
|
231
171
|
type: :development
|
|
232
172
|
prerelease: false
|
|
233
173
|
version_requirements: !ruby/object:Gem::Requirement
|
|
234
174
|
requirements:
|
|
235
175
|
- - "~>"
|
|
236
176
|
- !ruby/object:Gem::Version
|
|
237
|
-
version: 0.
|
|
177
|
+
version: '0.50'
|
|
238
178
|
- !ruby/object:Gem::Dependency
|
|
239
|
-
name:
|
|
179
|
+
name: benchmark-ips
|
|
240
180
|
requirement: !ruby/object:Gem::Requirement
|
|
241
181
|
requirements:
|
|
242
182
|
- - "~>"
|
|
243
183
|
- !ruby/object:Gem::Version
|
|
244
|
-
version:
|
|
184
|
+
version: '2.13'
|
|
245
185
|
type: :development
|
|
246
186
|
prerelease: false
|
|
247
187
|
version_requirements: !ruby/object:Gem::Requirement
|
|
248
188
|
requirements:
|
|
249
189
|
- - "~>"
|
|
250
190
|
- !ruby/object:Gem::Version
|
|
251
|
-
version:
|
|
252
|
-
description:
|
|
253
|
-
programming
|
|
191
|
+
version: '2.13'
|
|
192
|
+
description: 'FunctionalLightService combines the Organizer/Action/Context pattern
|
|
193
|
+
of LightService with functional programming constructs (Result/Option monads, pattern
|
|
194
|
+
matching) inspired by Deterministic: complex workflows are organized into small
|
|
195
|
+
single-purpose actions with functional error handling.'
|
|
254
196
|
email:
|
|
255
197
|
- miboscol@gmail.com
|
|
256
198
|
executables: []
|
|
@@ -262,6 +204,7 @@ files:
|
|
|
262
204
|
- ".rspec"
|
|
263
205
|
- ".rubocop.yml"
|
|
264
206
|
- ".solargraph.yml"
|
|
207
|
+
- AUDIT-functional-light-service.md
|
|
265
208
|
- Appraisals
|
|
266
209
|
- CHANGELOG.md
|
|
267
210
|
- CODE_OF_CONDUCT.md
|
|
@@ -270,6 +213,8 @@ files:
|
|
|
270
213
|
- README.md
|
|
271
214
|
- Rakefile
|
|
272
215
|
- VERSION
|
|
216
|
+
- audit/bench.rb
|
|
217
|
+
- audit/verify_findings.rb
|
|
273
218
|
- functional-light-service.gemspec
|
|
274
219
|
- gemfiles/dry_inflector_0_2_1.gemfile
|
|
275
220
|
- gemfiles/i18n_1_8_11.gemfile
|
|
@@ -278,6 +223,7 @@ files:
|
|
|
278
223
|
- lib/functional-light-service/configuration.rb
|
|
279
224
|
- lib/functional-light-service/context.rb
|
|
280
225
|
- lib/functional-light-service/context/key_verifier.rb
|
|
226
|
+
- lib/functional-light-service/deprecations.rb
|
|
281
227
|
- lib/functional-light-service/errors.rb
|
|
282
228
|
- lib/functional-light-service/functional/enum.rb
|
|
283
229
|
- lib/functional-light-service/functional/maybe.rb
|
|
@@ -292,7 +238,6 @@ files:
|
|
|
292
238
|
- lib/functional-light-service/organizer/reduce_if.rb
|
|
293
239
|
- lib/functional-light-service/organizer/reduce_until.rb
|
|
294
240
|
- lib/functional-light-service/organizer/scoped_reducable.rb
|
|
295
|
-
- lib/functional-light-service/organizer/verify_call_method_exists.rb
|
|
296
241
|
- lib/functional-light-service/organizer/with_callback.rb
|
|
297
242
|
- lib/functional-light-service/organizer/with_reducer.rb
|
|
298
243
|
- lib/functional-light-service/organizer/with_reducer_factory.rb
|
|
@@ -309,11 +254,10 @@ files:
|
|
|
309
254
|
- spec/acceptance/around_each_spec.rb
|
|
310
255
|
- spec/acceptance/before_actions_spec.rb
|
|
311
256
|
- spec/acceptance/custom_log_from_organizer_spec.rb
|
|
257
|
+
- spec/acceptance/deprecation_warnings_spec.rb
|
|
312
258
|
- spec/acceptance/fail_spec.rb
|
|
313
|
-
- spec/acceptance/include_warning_spec.rb
|
|
314
259
|
- spec/acceptance/log_from_organizer_spec.rb
|
|
315
260
|
- spec/acceptance/message_localization_spec.rb
|
|
316
|
-
- spec/acceptance/not_having_call_method_warning_spec.rb
|
|
317
261
|
- spec/acceptance/organizer/add_aliases_spec.rb
|
|
318
262
|
- spec/acceptance/organizer/add_to_context_spec.rb
|
|
319
263
|
- spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
|
|
@@ -323,6 +267,7 @@ files:
|
|
|
323
267
|
- spec/acceptance/organizer/reduce_if_spec.rb
|
|
324
268
|
- spec/acceptance/organizer/reduce_until_spec.rb
|
|
325
269
|
- spec/acceptance/organizer/with_callback_spec.rb
|
|
270
|
+
- spec/acceptance/organizer_entry_point_spec.rb
|
|
326
271
|
- spec/acceptance/rollback_spec.rb
|
|
327
272
|
- spec/acceptance/testing/context_factory_spec.rb
|
|
328
273
|
- spec/action_expected_keys_spec.rb
|
|
@@ -345,7 +290,9 @@ files:
|
|
|
345
290
|
- spec/lib/deterministic/result/result_shared.rb
|
|
346
291
|
- spec/lib/deterministic/result/success_spec.rb
|
|
347
292
|
- spec/lib/deterministic/result_spec.rb
|
|
293
|
+
- spec/lib/edge_cases_spec.rb
|
|
348
294
|
- spec/lib/enum_spec.rb
|
|
295
|
+
- spec/lib/native_pattern_matching_spec.rb
|
|
349
296
|
- spec/localization_adapter_spec.rb
|
|
350
297
|
- spec/organizer/with_reducer_spec.rb
|
|
351
298
|
- spec/organizer_key_aliases_spec.rb
|
|
@@ -378,7 +325,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
378
325
|
requirements:
|
|
379
326
|
- - ">="
|
|
380
327
|
- !ruby/object:Gem::Version
|
|
381
|
-
version:
|
|
328
|
+
version: 3.1.0
|
|
382
329
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
383
330
|
requirements:
|
|
384
331
|
- - ">="
|
|
@@ -389,67 +336,4 @@ rubygems_version: 3.6.9
|
|
|
389
336
|
specification_version: 4
|
|
390
337
|
summary: A service skeleton with an emphasis on simplicity with a pinch a functional
|
|
391
338
|
programming
|
|
392
|
-
test_files:
|
|
393
|
-
- spec/acceptance/add_numbers_spec.rb
|
|
394
|
-
- spec/acceptance/after_actions_spec.rb
|
|
395
|
-
- spec/acceptance/around_each_spec.rb
|
|
396
|
-
- spec/acceptance/before_actions_spec.rb
|
|
397
|
-
- spec/acceptance/custom_log_from_organizer_spec.rb
|
|
398
|
-
- spec/acceptance/fail_spec.rb
|
|
399
|
-
- spec/acceptance/include_warning_spec.rb
|
|
400
|
-
- spec/acceptance/log_from_organizer_spec.rb
|
|
401
|
-
- spec/acceptance/message_localization_spec.rb
|
|
402
|
-
- spec/acceptance/not_having_call_method_warning_spec.rb
|
|
403
|
-
- spec/acceptance/organizer/add_aliases_spec.rb
|
|
404
|
-
- spec/acceptance/organizer/add_to_context_spec.rb
|
|
405
|
-
- spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
|
|
406
|
-
- spec/acceptance/organizer/context_failure_and_skipping_spec.rb
|
|
407
|
-
- spec/acceptance/organizer/execute_spec.rb
|
|
408
|
-
- spec/acceptance/organizer/iterate_spec.rb
|
|
409
|
-
- spec/acceptance/organizer/reduce_if_spec.rb
|
|
410
|
-
- spec/acceptance/organizer/reduce_until_spec.rb
|
|
411
|
-
- spec/acceptance/organizer/with_callback_spec.rb
|
|
412
|
-
- spec/acceptance/rollback_spec.rb
|
|
413
|
-
- spec/acceptance/testing/context_factory_spec.rb
|
|
414
|
-
- spec/action_expected_keys_spec.rb
|
|
415
|
-
- spec/action_expects_and_promises_spec.rb
|
|
416
|
-
- spec/action_promised_keys_spec.rb
|
|
417
|
-
- spec/action_spec.rb
|
|
418
|
-
- spec/context/inspect_spec.rb
|
|
419
|
-
- spec/context_spec.rb
|
|
420
|
-
- spec/examples/amount_spec.rb
|
|
421
|
-
- spec/examples/controller_spec.rb
|
|
422
|
-
- spec/examples/validate_address_spec.rb
|
|
423
|
-
- spec/lib/deterministic/class_mixin_spec.rb
|
|
424
|
-
- spec/lib/deterministic/currify_spec.rb
|
|
425
|
-
- spec/lib/deterministic/monad_axioms.rb
|
|
426
|
-
- spec/lib/deterministic/monad_spec.rb
|
|
427
|
-
- spec/lib/deterministic/null_spec.rb
|
|
428
|
-
- spec/lib/deterministic/option_spec.rb
|
|
429
|
-
- spec/lib/deterministic/result/failure_spec.rb
|
|
430
|
-
- spec/lib/deterministic/result/result_map_spec.rb
|
|
431
|
-
- spec/lib/deterministic/result/result_shared.rb
|
|
432
|
-
- spec/lib/deterministic/result/success_spec.rb
|
|
433
|
-
- spec/lib/deterministic/result_spec.rb
|
|
434
|
-
- spec/lib/enum_spec.rb
|
|
435
|
-
- spec/localization_adapter_spec.rb
|
|
436
|
-
- spec/organizer/with_reducer_spec.rb
|
|
437
|
-
- spec/organizer_key_aliases_spec.rb
|
|
438
|
-
- spec/organizer_spec.rb
|
|
439
|
-
- spec/readme_spec.rb
|
|
440
|
-
- spec/sample/calculates_order_tax_action_spec.rb
|
|
441
|
-
- spec/sample/calculates_tax_spec.rb
|
|
442
|
-
- spec/sample/looks_up_tax_percentage_action_spec.rb
|
|
443
|
-
- spec/sample/provides_free_shipping_action_spec.rb
|
|
444
|
-
- spec/sample/tax/calculates_order_tax_action.rb
|
|
445
|
-
- spec/sample/tax/calculates_tax.rb
|
|
446
|
-
- spec/sample/tax/looks_up_tax_percentage_action.rb
|
|
447
|
-
- spec/sample/tax/provides_free_shipping_action.rb
|
|
448
|
-
- spec/spec_helper.rb
|
|
449
|
-
- spec/support.rb
|
|
450
|
-
- spec/test_doubles.rb
|
|
451
|
-
- spec/testing/context_factory/iterate_spec.rb
|
|
452
|
-
- spec/testing/context_factory/reduce_if_spec.rb
|
|
453
|
-
- spec/testing/context_factory/reduce_until_spec.rb
|
|
454
|
-
- spec/testing/context_factory/with_callback_spec.rb
|
|
455
|
-
- spec/testing/context_factory_spec.rb
|
|
339
|
+
test_files: []
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module FunctionalLightService
|
|
2
|
-
module Organizer
|
|
3
|
-
# We need to make sure existing users will
|
|
4
|
-
# use `call` method name going forward.
|
|
5
|
-
# This should be removed eventually.
|
|
6
|
-
class VerifyCallMethodExists
|
|
7
|
-
def self.run(klass, first_caller = '')
|
|
8
|
-
invoker_method = caller_method(first_caller)
|
|
9
|
-
return if invoker_method == 'call'
|
|
10
|
-
|
|
11
|
-
call_method_exists = klass.methods.include?(:call)
|
|
12
|
-
return if call_method_exists
|
|
13
|
-
|
|
14
|
-
warning_msg = "DEPRECATION WARNING:" \
|
|
15
|
-
"The <#{klass.name}> class is an organizer, " \
|
|
16
|
-
"its entry method (the one that calls with & reduce) " \
|
|
17
|
-
"should be named `call`. " \
|
|
18
|
-
"Please use #{klass}.call going forward."
|
|
19
|
-
print warning_msg
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def self.caller_method(first_caller)
|
|
23
|
-
return nil unless first_caller =~ /`(.*)'/
|
|
24
|
-
|
|
25
|
-
Regexp.last_match[1]
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe "Including is discouraged" do
|
|
4
|
-
context "when including FunctionalLightService::Organizer" do
|
|
5
|
-
it "gives warning" do
|
|
6
|
-
expected_msg = "DEPRECATION WARNING:\n" \
|
|
7
|
-
"Including FunctionalLightService::Organizer is deprecated\n" \
|
|
8
|
-
"Please use `extend FunctionalLightService::Organizer` instead"
|
|
9
|
-
expect do
|
|
10
|
-
class OrganizerIncludingLS
|
|
11
|
-
include FunctionalLightService::Organizer
|
|
12
|
-
end
|
|
13
|
-
end.to output(expected_msg).to_stdout
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
context "when including FunctionalLightService::Action" do
|
|
18
|
-
it "gives warning" do
|
|
19
|
-
expected_msg = "DEPRECATION WARNING:\n" \
|
|
20
|
-
"Including FunctionalLightService::Action is deprecated\n" \
|
|
21
|
-
"Please use `extend FunctionalLightService::Action` instead"
|
|
22
|
-
expect do
|
|
23
|
-
class ActionIncludingLS
|
|
24
|
-
include FunctionalLightService::Action
|
|
25
|
-
end
|
|
26
|
-
end.to output(expected_msg).to_stdout
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|