functional-light-service 0.4.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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/project-build.yml +43 -11
  3. data/.rubocop.yml +101 -160
  4. data/AUDIT-functional-light-service.md +352 -0
  5. data/Appraisals +4 -0
  6. data/CHANGELOG.md +118 -0
  7. data/Gemfile +0 -2
  8. data/README.md +1544 -1426
  9. data/Rakefile +1 -1
  10. data/VERSION +1 -1
  11. data/audit/bench.rb +99 -0
  12. data/audit/verify_findings.rb +172 -0
  13. data/functional-light-service.gemspec +15 -16
  14. data/lib/functional-light-service/action.rb +97 -101
  15. data/lib/functional-light-service/configuration.rb +26 -24
  16. data/lib/functional-light-service/context/key_verifier.rb +124 -118
  17. data/lib/functional-light-service/context.rb +63 -20
  18. data/lib/functional-light-service/deprecations.rb +26 -0
  19. data/lib/functional-light-service/errors.rb +8 -6
  20. data/lib/functional-light-service/functional/enum.rb +286 -250
  21. data/lib/functional-light-service/functional/maybe.rb +21 -15
  22. data/lib/functional-light-service/functional/monad.rb +77 -66
  23. data/lib/functional-light-service/functional/null.rb +88 -74
  24. data/lib/functional-light-service/functional/option.rb +100 -97
  25. data/lib/functional-light-service/functional/result.rb +129 -116
  26. data/lib/functional-light-service/localization_adapter.rb +48 -47
  27. data/lib/functional-light-service/organizer/execute.rb +16 -14
  28. data/lib/functional-light-service/organizer/iterate.rb +30 -25
  29. data/lib/functional-light-service/organizer/reduce_if.rb +19 -17
  30. data/lib/functional-light-service/organizer/reduce_until.rb +22 -20
  31. data/lib/functional-light-service/organizer/scoped_reducable.rb +15 -13
  32. data/lib/functional-light-service/organizer/with_callback.rb +28 -26
  33. data/lib/functional-light-service/organizer/with_reducer.rb +81 -71
  34. data/lib/functional-light-service/organizer/with_reducer_factory.rb +20 -18
  35. data/lib/functional-light-service/organizer/with_reducer_log_decorator.rb +110 -105
  36. data/lib/functional-light-service/organizer.rb +114 -104
  37. data/lib/functional-light-service/testing/context_factory.rb +48 -42
  38. data/lib/functional-light-service/testing.rb +3 -1
  39. data/lib/functional-light-service/version.rb +5 -3
  40. data/lib/functional-light-service.rb +30 -28
  41. data/spec/acceptance/after_actions_spec.rb +87 -71
  42. data/spec/acceptance/before_actions_spec.rb +115 -98
  43. data/spec/acceptance/custom_log_from_organizer_spec.rb +61 -60
  44. data/spec/acceptance/deprecation_warnings_spec.rb +82 -0
  45. data/spec/acceptance/fail_spec.rb +52 -50
  46. data/spec/acceptance/message_localization_spec.rb +119 -118
  47. data/spec/acceptance/organizer/add_aliases_spec.rb +28 -0
  48. data/spec/acceptance/organizer/add_to_context_spec.rb +30 -0
  49. data/spec/acceptance/organizer/context_failure_and_skipping_spec.rb +68 -65
  50. data/spec/acceptance/organizer/iterate_spec.rb +7 -0
  51. data/spec/acceptance/organizer/reduce_if_spec.rb +89 -83
  52. data/spec/acceptance/organizer/reduce_until_spec.rb +6 -0
  53. data/spec/acceptance/organizer/with_callback_spec.rb +113 -110
  54. data/spec/acceptance/{not_having_call_method_warning_spec.rb → organizer_entry_point_spec.rb} +10 -7
  55. data/spec/acceptance/rollback_spec.rb +183 -132
  56. data/spec/action_expects_and_promises_spec.rb +97 -93
  57. data/spec/action_promised_keys_spec.rb +126 -122
  58. data/spec/action_spec.rb +8 -0
  59. data/spec/context_spec.rb +289 -197
  60. data/spec/examples/controller_spec.rb +63 -63
  61. data/spec/examples/validate_address_spec.rb +38 -37
  62. data/spec/lib/deterministic/currify_spec.rb +90 -88
  63. data/spec/lib/deterministic/null_spec.rb +6 -1
  64. data/spec/lib/deterministic/option_spec.rb +140 -133
  65. data/spec/lib/deterministic/result/result_map_spec.rb +155 -154
  66. data/spec/lib/deterministic/result/result_shared.rb +3 -2
  67. data/spec/lib/deterministic/result_spec.rb +2 -2
  68. data/spec/lib/edge_cases_spec.rb +156 -0
  69. data/spec/lib/enum_spec.rb +1 -1
  70. data/spec/lib/native_pattern_matching_spec.rb +74 -0
  71. data/spec/organizer_spec.rb +115 -93
  72. data/spec/readme_spec.rb +45 -47
  73. data/spec/sample/calculates_order_tax_action_spec.rb +16 -16
  74. data/spec/sample/calculates_tax_spec.rb +1 -1
  75. data/spec/sample/looks_up_tax_percentage_action_spec.rb +55 -55
  76. data/spec/sample/provides_free_shipping_action_spec.rb +1 -1
  77. data/spec/sample/tax/calculates_order_tax_action.rb +10 -9
  78. data/spec/sample/tax/looks_up_tax_percentage_action.rb +28 -27
  79. data/spec/sample/tax/provides_free_shipping_action.rb +11 -10
  80. data/spec/spec_helper.rb +21 -13
  81. data/spec/test_doubles.rb +628 -564
  82. data/spec/testing/context_factory_spec.rb +21 -0
  83. metadata +49 -117
  84. data/.travis.yml +0 -24
  85. data/lib/functional-light-service/organizer/verify_call_method_exists.rb +0 -29
  86. 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,35 +1,34 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: functional-light-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boscolo Michele
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-01-27 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: dry-inflector
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '0.2'
20
16
  - - ">="
21
17
  - !ruby/object:Gem::Version
22
18
  version: 0.2.1
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '2'
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
26
25
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '0.2'
30
26
  - - ">="
31
27
  - !ruby/object:Gem::Version
32
28
  version: 0.2.1
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '2'
33
32
  - !ruby/object:Gem::Dependency
34
33
  name: i18n
35
34
  requirement: !ruby/object:Gem::Requirement
@@ -51,159 +50,149 @@ dependencies:
51
50
  - !ruby/object:Gem::Version
52
51
  version: 1.8.11
53
52
  - !ruby/object:Gem::Dependency
54
- name: i18n
53
+ name: logger
55
54
  requirement: !ruby/object:Gem::Requirement
56
55
  requirements:
57
56
  - - "~>"
58
57
  - !ruby/object:Gem::Version
59
- version: '1.8'
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 1.8.11
63
- type: :development
58
+ version: '1.5'
59
+ type: :runtime
64
60
  prerelease: false
65
61
  version_requirements: !ruby/object:Gem::Requirement
66
62
  requirements:
67
63
  - - "~>"
68
64
  - !ruby/object:Gem::Version
69
- version: '1.8'
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- version: 1.8.11
65
+ version: '1.5'
73
66
  - !ruby/object:Gem::Dependency
74
- name: dry-inflector
67
+ name: rake
75
68
  requirement: !ruby/object:Gem::Requirement
76
69
  requirements:
77
70
  - - "~>"
78
71
  - !ruby/object:Gem::Version
79
- version: '0.2'
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 0.2.1
72
+ version: '13.0'
83
73
  type: :development
84
74
  prerelease: false
85
75
  version_requirements: !ruby/object:Gem::Requirement
86
76
  requirements:
87
77
  - - "~>"
88
78
  - !ruby/object:Gem::Version
89
- version: '0.2'
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- version: 0.2.1
79
+ version: '13.0'
93
80
  - !ruby/object:Gem::Dependency
94
81
  name: rspec
95
82
  requirement: !ruby/object:Gem::Requirement
96
83
  requirements:
97
84
  - - "~>"
98
85
  - !ruby/object:Gem::Version
99
- version: 3.10.0
86
+ version: '3.13'
100
87
  type: :development
101
88
  prerelease: false
102
89
  version_requirements: !ruby/object:Gem::Requirement
103
90
  requirements:
104
91
  - - "~>"
105
92
  - !ruby/object:Gem::Version
106
- version: 3.10.0
93
+ version: '3.13'
107
94
  - !ruby/object:Gem::Dependency
108
95
  name: simplecov
109
96
  requirement: !ruby/object:Gem::Requirement
110
97
  requirements:
111
98
  - - "~>"
112
99
  - !ruby/object:Gem::Version
113
- version: 0.21.2
100
+ version: '0.22'
114
101
  type: :development
115
102
  prerelease: false
116
103
  version_requirements: !ruby/object:Gem::Requirement
117
104
  requirements:
118
105
  - - "~>"
119
106
  - !ruby/object:Gem::Version
120
- version: 0.21.2
107
+ version: '0.22'
121
108
  - !ruby/object:Gem::Dependency
122
109
  name: simplecov-cobertura
123
110
  requirement: !ruby/object:Gem::Requirement
124
111
  requirements:
125
112
  - - "~>"
126
113
  - !ruby/object:Gem::Version
127
- version: 2.1.0
114
+ version: '3.0'
128
115
  type: :development
129
116
  prerelease: false
130
117
  version_requirements: !ruby/object:Gem::Requirement
131
118
  requirements:
132
119
  - - "~>"
133
120
  - !ruby/object:Gem::Version
134
- version: 2.1.0
121
+ version: '3.0'
135
122
  - !ruby/object:Gem::Dependency
136
123
  name: rubocop
137
124
  requirement: !ruby/object:Gem::Requirement
138
125
  requirements:
139
126
  - - "~>"
140
127
  - !ruby/object:Gem::Version
141
- version: 1.25.0
128
+ version: '1.75'
142
129
  type: :development
143
130
  prerelease: false
144
131
  version_requirements: !ruby/object:Gem::Requirement
145
132
  requirements:
146
133
  - - "~>"
147
134
  - !ruby/object:Gem::Version
148
- version: 1.25.0
135
+ version: '1.75'
149
136
  - !ruby/object:Gem::Dependency
150
137
  name: rubocop-performance
151
138
  requirement: !ruby/object:Gem::Requirement
152
139
  requirements:
153
140
  - - "~>"
154
141
  - !ruby/object:Gem::Version
155
- version: 1.13.2
142
+ version: '1.20'
156
143
  type: :development
157
144
  prerelease: false
158
145
  version_requirements: !ruby/object:Gem::Requirement
159
146
  requirements:
160
147
  - - "~>"
161
148
  - !ruby/object:Gem::Version
162
- version: 1.13.2
149
+ version: '1.20'
163
150
  - !ruby/object:Gem::Dependency
164
151
  name: pry
165
152
  requirement: !ruby/object:Gem::Requirement
166
153
  requirements:
167
154
  - - "~>"
168
155
  - !ruby/object:Gem::Version
169
- version: 0.14.1
156
+ version: '0.15'
170
157
  type: :development
171
158
  prerelease: false
172
159
  version_requirements: !ruby/object:Gem::Requirement
173
160
  requirements:
174
161
  - - "~>"
175
162
  - !ruby/object:Gem::Version
176
- version: 0.14.1
163
+ version: '0.15'
177
164
  - !ruby/object:Gem::Dependency
178
165
  name: solargraph
179
166
  requirement: !ruby/object:Gem::Requirement
180
167
  requirements:
181
168
  - - "~>"
182
169
  - !ruby/object:Gem::Version
183
- version: 0.44.2
170
+ version: '0.50'
184
171
  type: :development
185
172
  prerelease: false
186
173
  version_requirements: !ruby/object:Gem::Requirement
187
174
  requirements:
188
175
  - - "~>"
189
176
  - !ruby/object:Gem::Version
190
- version: 0.44.2
177
+ version: '0.50'
191
178
  - !ruby/object:Gem::Dependency
192
- name: nokogiri
179
+ name: benchmark-ips
193
180
  requirement: !ruby/object:Gem::Requirement
194
181
  requirements:
195
182
  - - "~>"
196
183
  - !ruby/object:Gem::Version
197
- version: 1.12.5
184
+ version: '2.13'
198
185
  type: :development
199
186
  prerelease: false
200
187
  version_requirements: !ruby/object:Gem::Requirement
201
188
  requirements:
202
189
  - - "~>"
203
190
  - !ruby/object:Gem::Version
204
- version: 1.12.5
205
- description: A service skeleton with an emphasis on simplicity with a pinch a functional
206
- 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.'
207
196
  email:
208
197
  - miboscol@gmail.com
209
198
  executables: []
@@ -215,7 +204,7 @@ files:
215
204
  - ".rspec"
216
205
  - ".rubocop.yml"
217
206
  - ".solargraph.yml"
218
- - ".travis.yml"
207
+ - AUDIT-functional-light-service.md
219
208
  - Appraisals
220
209
  - CHANGELOG.md
221
210
  - CODE_OF_CONDUCT.md
@@ -224,6 +213,8 @@ files:
224
213
  - README.md
225
214
  - Rakefile
226
215
  - VERSION
216
+ - audit/bench.rb
217
+ - audit/verify_findings.rb
227
218
  - functional-light-service.gemspec
228
219
  - gemfiles/dry_inflector_0_2_1.gemfile
229
220
  - gemfiles/i18n_1_8_11.gemfile
@@ -232,6 +223,7 @@ files:
232
223
  - lib/functional-light-service/configuration.rb
233
224
  - lib/functional-light-service/context.rb
234
225
  - lib/functional-light-service/context/key_verifier.rb
226
+ - lib/functional-light-service/deprecations.rb
235
227
  - lib/functional-light-service/errors.rb
236
228
  - lib/functional-light-service/functional/enum.rb
237
229
  - lib/functional-light-service/functional/maybe.rb
@@ -246,7 +238,6 @@ files:
246
238
  - lib/functional-light-service/organizer/reduce_if.rb
247
239
  - lib/functional-light-service/organizer/reduce_until.rb
248
240
  - lib/functional-light-service/organizer/scoped_reducable.rb
249
- - lib/functional-light-service/organizer/verify_call_method_exists.rb
250
241
  - lib/functional-light-service/organizer/with_callback.rb
251
242
  - lib/functional-light-service/organizer/with_reducer.rb
252
243
  - lib/functional-light-service/organizer/with_reducer_factory.rb
@@ -263,11 +254,12 @@ files:
263
254
  - spec/acceptance/around_each_spec.rb
264
255
  - spec/acceptance/before_actions_spec.rb
265
256
  - spec/acceptance/custom_log_from_organizer_spec.rb
257
+ - spec/acceptance/deprecation_warnings_spec.rb
266
258
  - spec/acceptance/fail_spec.rb
267
- - spec/acceptance/include_warning_spec.rb
268
259
  - spec/acceptance/log_from_organizer_spec.rb
269
260
  - spec/acceptance/message_localization_spec.rb
270
- - spec/acceptance/not_having_call_method_warning_spec.rb
261
+ - spec/acceptance/organizer/add_aliases_spec.rb
262
+ - spec/acceptance/organizer/add_to_context_spec.rb
271
263
  - spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
272
264
  - spec/acceptance/organizer/context_failure_and_skipping_spec.rb
273
265
  - spec/acceptance/organizer/execute_spec.rb
@@ -275,6 +267,7 @@ files:
275
267
  - spec/acceptance/organizer/reduce_if_spec.rb
276
268
  - spec/acceptance/organizer/reduce_until_spec.rb
277
269
  - spec/acceptance/organizer/with_callback_spec.rb
270
+ - spec/acceptance/organizer_entry_point_spec.rb
278
271
  - spec/acceptance/rollback_spec.rb
279
272
  - spec/acceptance/testing/context_factory_spec.rb
280
273
  - spec/action_expected_keys_spec.rb
@@ -297,7 +290,9 @@ files:
297
290
  - spec/lib/deterministic/result/result_shared.rb
298
291
  - spec/lib/deterministic/result/success_spec.rb
299
292
  - spec/lib/deterministic/result_spec.rb
293
+ - spec/lib/edge_cases_spec.rb
300
294
  - spec/lib/enum_spec.rb
295
+ - spec/lib/native_pattern_matching_spec.rb
301
296
  - spec/localization_adapter_spec.rb
302
297
  - spec/organizer/with_reducer_spec.rb
303
298
  - spec/organizer_key_aliases_spec.rb
@@ -323,7 +318,6 @@ homepage: https://github.com/sphynx79/functional-light-service
323
318
  licenses:
324
319
  - MIT
325
320
  metadata: {}
326
- post_install_message:
327
321
  rdoc_options: []
328
322
  require_paths:
329
323
  - lib
@@ -331,77 +325,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
331
325
  requirements:
332
326
  - - ">="
333
327
  - !ruby/object:Gem::Version
334
- version: 2.6.0
328
+ version: 3.1.0
335
329
  required_rubygems_version: !ruby/object:Gem::Requirement
336
330
  requirements:
337
331
  - - ">="
338
332
  - !ruby/object:Gem::Version
339
333
  version: '0'
340
334
  requirements: []
341
- rubygems_version: 3.2.28
342
- signing_key:
335
+ rubygems_version: 3.6.9
343
336
  specification_version: 4
344
337
  summary: A service skeleton with an emphasis on simplicity with a pinch a functional
345
338
  programming
346
- test_files:
347
- - spec/acceptance/add_numbers_spec.rb
348
- - spec/acceptance/after_actions_spec.rb
349
- - spec/acceptance/around_each_spec.rb
350
- - spec/acceptance/before_actions_spec.rb
351
- - spec/acceptance/custom_log_from_organizer_spec.rb
352
- - spec/acceptance/fail_spec.rb
353
- - spec/acceptance/include_warning_spec.rb
354
- - spec/acceptance/log_from_organizer_spec.rb
355
- - spec/acceptance/message_localization_spec.rb
356
- - spec/acceptance/not_having_call_method_warning_spec.rb
357
- - spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
358
- - spec/acceptance/organizer/context_failure_and_skipping_spec.rb
359
- - spec/acceptance/organizer/execute_spec.rb
360
- - spec/acceptance/organizer/iterate_spec.rb
361
- - spec/acceptance/organizer/reduce_if_spec.rb
362
- - spec/acceptance/organizer/reduce_until_spec.rb
363
- - spec/acceptance/organizer/with_callback_spec.rb
364
- - spec/acceptance/rollback_spec.rb
365
- - spec/acceptance/testing/context_factory_spec.rb
366
- - spec/action_expected_keys_spec.rb
367
- - spec/action_expects_and_promises_spec.rb
368
- - spec/action_promised_keys_spec.rb
369
- - spec/action_spec.rb
370
- - spec/context/inspect_spec.rb
371
- - spec/context_spec.rb
372
- - spec/examples/amount_spec.rb
373
- - spec/examples/controller_spec.rb
374
- - spec/examples/validate_address_spec.rb
375
- - spec/lib/deterministic/class_mixin_spec.rb
376
- - spec/lib/deterministic/currify_spec.rb
377
- - spec/lib/deterministic/monad_axioms.rb
378
- - spec/lib/deterministic/monad_spec.rb
379
- - spec/lib/deterministic/null_spec.rb
380
- - spec/lib/deterministic/option_spec.rb
381
- - spec/lib/deterministic/result/failure_spec.rb
382
- - spec/lib/deterministic/result/result_map_spec.rb
383
- - spec/lib/deterministic/result/result_shared.rb
384
- - spec/lib/deterministic/result/success_spec.rb
385
- - spec/lib/deterministic/result_spec.rb
386
- - spec/lib/enum_spec.rb
387
- - spec/localization_adapter_spec.rb
388
- - spec/organizer/with_reducer_spec.rb
389
- - spec/organizer_key_aliases_spec.rb
390
- - spec/organizer_spec.rb
391
- - spec/readme_spec.rb
392
- - spec/sample/calculates_order_tax_action_spec.rb
393
- - spec/sample/calculates_tax_spec.rb
394
- - spec/sample/looks_up_tax_percentage_action_spec.rb
395
- - spec/sample/provides_free_shipping_action_spec.rb
396
- - spec/sample/tax/calculates_order_tax_action.rb
397
- - spec/sample/tax/calculates_tax.rb
398
- - spec/sample/tax/looks_up_tax_percentage_action.rb
399
- - spec/sample/tax/provides_free_shipping_action.rb
400
- - spec/spec_helper.rb
401
- - spec/support.rb
402
- - spec/test_doubles.rb
403
- - spec/testing/context_factory/iterate_spec.rb
404
- - spec/testing/context_factory/reduce_if_spec.rb
405
- - spec/testing/context_factory/reduce_until_spec.rb
406
- - spec/testing/context_factory/with_callback_spec.rb
407
- - spec/testing/context_factory_spec.rb
339
+ test_files: []
data/.travis.yml DELETED
@@ -1,24 +0,0 @@
1
- language: ruby
2
-
3
- env:
4
- - RUN_COVERAGE_REPORT=true
5
-
6
- rvm:
7
- - 2.6.6
8
- - 2.7.2
9
- - 3.0.0
10
-
11
- before_install:
12
- - 'echo ''gem: --no-ri --no-rdoc'' > ~/.gemrc'
13
- - yes | gem update --system --force
14
- - gem install bundler
15
- - bundle install --gemfile=Gemfile --clean --path vendor/bundle
16
-
17
- # uncomment this line if your project needs to run something other than `rake`:
18
- script:
19
- - bundle exec rspec spec
20
- - bundle exec rubocop
21
-
22
- gemfile:
23
- - gemfiles/dry_inflector_0_2_1.gemfile
24
- - gemfiles/i18n_1_8_11.gemfile
@@ -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