functional-light-service 0.3.4 → 0.5.4

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/project-build.yml +47 -0
  3. data/.rubocop.yml +103 -15
  4. data/.solargraph.yml +11 -0
  5. data/Appraisals +6 -2
  6. data/CHANGELOG.md +128 -0
  7. data/Gemfile +1 -3
  8. data/README.md +1492 -1424
  9. data/Rakefile +1 -1
  10. data/VERSION +1 -1
  11. data/functional-light-service.gemspec +19 -8
  12. data/gemfiles/dry_inflector_0_2_1.gemfile +5 -0
  13. data/gemfiles/i18n_1_8_11.gemfile +5 -0
  14. data/lib/functional-light-service/context/key_verifier.rb +2 -2
  15. data/lib/functional-light-service/context.rb +152 -154
  16. data/lib/functional-light-service/functional/enum.rb +2 -6
  17. data/lib/functional-light-service/functional/maybe.rb +1 -0
  18. data/lib/functional-light-service/functional/null.rb +1 -1
  19. data/lib/functional-light-service/functional/option.rb +0 -2
  20. data/lib/functional-light-service/functional/result.rb +2 -2
  21. data/lib/functional-light-service/organizer/with_reducer.rb +6 -0
  22. data/lib/functional-light-service/organizer/with_reducer_factory.rb +1 -1
  23. data/lib/functional-light-service/organizer/with_reducer_log_decorator.rb +5 -2
  24. data/lib/functional-light-service/organizer.rb +10 -0
  25. data/lib/functional-light-service/testing/context_factory.rb +2 -0
  26. data/lib/functional-light-service/version.rb +1 -1
  27. data/spec/acceptance/fail_spec.rb +42 -16
  28. data/spec/acceptance/organizer/add_aliases_spec.rb +28 -0
  29. data/spec/acceptance/organizer/add_to_context_spec.rb +30 -0
  30. data/spec/acceptance/organizer/iterate_spec.rb +7 -0
  31. data/spec/acceptance/organizer/reduce_if_spec.rb +38 -0
  32. data/spec/acceptance/organizer/reduce_until_spec.rb +6 -0
  33. data/spec/action_spec.rb +8 -0
  34. data/spec/context/inspect_spec.rb +6 -21
  35. data/spec/context_spec.rb +1 -1
  36. data/spec/lib/deterministic/monad_axioms.rb +2 -0
  37. data/spec/lib/deterministic/monad_spec.rb +2 -0
  38. data/spec/lib/deterministic/null_spec.rb +2 -0
  39. data/spec/lib/deterministic/option_spec.rb +18 -14
  40. data/spec/lib/enum_spec.rb +3 -1
  41. data/spec/organizer_spec.rb +21 -0
  42. data/spec/sample/looks_up_tax_percentage_action_spec.rb +3 -1
  43. data/spec/sample/provides_free_shipping_action_spec.rb +1 -1
  44. data/spec/spec_helper.rb +8 -5
  45. data/spec/test_doubles.rb +56 -9
  46. metadata +156 -26
  47. data/.travis.yml +0 -24
  48. data/gemfiles/dry_inflector_0_2.gemfile +0 -8
  49. data/gemfiles/i18n_1_8.gemfile +0 -8
metadata CHANGED
@@ -1,127 +1,254 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: functional-light-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boscolo Michele
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-12-16 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:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '0.2'
17
19
  - - ">="
18
20
  - !ruby/object:Gem::Version
19
- version: 0.2.0
21
+ version: 0.2.1
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
23
25
  requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '0.2'
24
29
  - - ">="
25
30
  - !ruby/object:Gem::Version
26
- version: 0.2.0
31
+ version: 0.2.1
27
32
  - !ruby/object:Gem::Dependency
28
33
  name: i18n
29
34
  requirement: !ruby/object:Gem::Requirement
30
35
  requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: '1.8'
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
33
- version: 1.8.2
41
+ version: 1.8.11
34
42
  type: :runtime
35
43
  prerelease: false
36
44
  version_requirements: !ruby/object:Gem::Requirement
37
45
  requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.8'
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: 1.8.11
52
+ - !ruby/object:Gem::Dependency
53
+ name: rake
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: 13.0.6
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 13.0.6
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 13.0.6
38
69
  - - ">="
39
70
  - !ruby/object:Gem::Version
40
- version: 1.8.2
71
+ version: 13.0.6
41
72
  - !ruby/object:Gem::Dependency
42
73
  name: i18n
43
74
  requirement: !ruby/object:Gem::Requirement
44
75
  requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: '1.8'
45
79
  - - ">="
46
80
  - !ruby/object:Gem::Version
47
- version: 1.8.2
81
+ version: 1.8.11
48
82
  type: :development
49
83
  prerelease: false
50
84
  version_requirements: !ruby/object:Gem::Requirement
51
85
  requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.8'
52
89
  - - ">="
53
90
  - !ruby/object:Gem::Version
54
- version: 1.8.2
91
+ version: 1.8.11
55
92
  - !ruby/object:Gem::Dependency
56
93
  name: dry-inflector
57
94
  requirement: !ruby/object:Gem::Requirement
58
95
  requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '0.2'
59
99
  - - ">="
60
100
  - !ruby/object:Gem::Version
61
- version: 0.2.0
101
+ version: 0.2.1
62
102
  type: :development
63
103
  prerelease: false
64
104
  version_requirements: !ruby/object:Gem::Requirement
65
105
  requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '0.2'
66
109
  - - ">="
67
110
  - !ruby/object:Gem::Version
68
- version: 0.2.0
111
+ version: 0.2.1
69
112
  - !ruby/object:Gem::Dependency
70
113
  name: rspec
71
114
  requirement: !ruby/object:Gem::Requirement
72
115
  requirements:
73
116
  - - "~>"
74
117
  - !ruby/object:Gem::Version
75
- version: '3.0'
118
+ version: 3.10.0
76
119
  type: :development
77
120
  prerelease: false
78
121
  version_requirements: !ruby/object:Gem::Requirement
79
122
  requirements:
80
123
  - - "~>"
81
124
  - !ruby/object:Gem::Version
82
- version: '3.0'
125
+ version: 3.10.0
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
83
140
  - !ruby/object:Gem::Dependency
84
141
  name: simplecov
85
142
  requirement: !ruby/object:Gem::Requirement
86
143
  requirements:
87
144
  - - "~>"
88
145
  - !ruby/object:Gem::Version
89
- version: 0.16.1
146
+ version: 0.21.2
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: 0.21.2
154
+ - !ruby/object:Gem::Dependency
155
+ name: simplecov-cobertura
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: 2.1.0
90
161
  type: :development
91
162
  prerelease: false
92
163
  version_requirements: !ruby/object:Gem::Requirement
93
164
  requirements:
94
165
  - - "~>"
95
166
  - !ruby/object:Gem::Version
96
- version: 0.16.1
167
+ version: 2.1.0
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'
97
182
  - !ruby/object:Gem::Dependency
98
183
  name: rubocop
99
184
  requirement: !ruby/object:Gem::Requirement
100
185
  requirements:
101
186
  - - "~>"
102
187
  - !ruby/object:Gem::Version
103
- version: 0.63.1
188
+ version: 1.25.0
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: 1.25.0
196
+ - !ruby/object:Gem::Dependency
197
+ name: rubocop-performance
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: 1.13.2
104
203
  type: :development
105
204
  prerelease: false
106
205
  version_requirements: !ruby/object:Gem::Requirement
107
206
  requirements:
108
207
  - - "~>"
109
208
  - !ruby/object:Gem::Version
110
- version: 0.63.1
209
+ version: 1.13.2
111
210
  - !ruby/object:Gem::Dependency
112
211
  name: pry
113
212
  requirement: !ruby/object:Gem::Requirement
114
213
  requirements:
115
214
  - - "~>"
116
215
  - !ruby/object:Gem::Version
117
- version: 0.12.2
216
+ version: 0.14.1
118
217
  type: :development
119
218
  prerelease: false
120
219
  version_requirements: !ruby/object:Gem::Requirement
121
220
  requirements:
122
221
  - - "~>"
123
222
  - !ruby/object:Gem::Version
124
- version: 0.12.2
223
+ version: 0.14.1
224
+ - !ruby/object:Gem::Dependency
225
+ name: solargraph
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - "~>"
229
+ - !ruby/object:Gem::Version
230
+ version: 0.44.2
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - "~>"
236
+ - !ruby/object:Gem::Version
237
+ version: 0.44.2
238
+ - !ruby/object:Gem::Dependency
239
+ name: nokogiri
240
+ requirement: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - "~>"
243
+ - !ruby/object:Gem::Version
244
+ version: 1.12.5
245
+ type: :development
246
+ prerelease: false
247
+ version_requirements: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - "~>"
250
+ - !ruby/object:Gem::Version
251
+ version: 1.12.5
125
252
  description: A service skeleton with an emphasis on simplicity with a pinch a functional
126
253
  programming
127
254
  email:
@@ -130,10 +257,11 @@ executables: []
130
257
  extensions: []
131
258
  extra_rdoc_files: []
132
259
  files:
260
+ - ".github/workflows/project-build.yml"
133
261
  - ".gitignore"
134
262
  - ".rspec"
135
263
  - ".rubocop.yml"
136
- - ".travis.yml"
264
+ - ".solargraph.yml"
137
265
  - Appraisals
138
266
  - CHANGELOG.md
139
267
  - CODE_OF_CONDUCT.md
@@ -143,8 +271,8 @@ files:
143
271
  - Rakefile
144
272
  - VERSION
145
273
  - functional-light-service.gemspec
146
- - gemfiles/dry_inflector_0_2.gemfile
147
- - gemfiles/i18n_1_8.gemfile
274
+ - gemfiles/dry_inflector_0_2_1.gemfile
275
+ - gemfiles/i18n_1_8_11.gemfile
148
276
  - lib/functional-light-service.rb
149
277
  - lib/functional-light-service/action.rb
150
278
  - lib/functional-light-service/configuration.rb
@@ -186,6 +314,8 @@ files:
186
314
  - spec/acceptance/log_from_organizer_spec.rb
187
315
  - spec/acceptance/message_localization_spec.rb
188
316
  - spec/acceptance/not_having_call_method_warning_spec.rb
317
+ - spec/acceptance/organizer/add_aliases_spec.rb
318
+ - spec/acceptance/organizer/add_to_context_spec.rb
189
319
  - spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
190
320
  - spec/acceptance/organizer/context_failure_and_skipping_spec.rb
191
321
  - spec/acceptance/organizer/execute_spec.rb
@@ -241,7 +371,6 @@ homepage: https://github.com/sphynx79/functional-light-service
241
371
  licenses:
242
372
  - MIT
243
373
  metadata: {}
244
- post_install_message:
245
374
  rdoc_options: []
246
375
  require_paths:
247
376
  - lib
@@ -249,15 +378,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
249
378
  requirements:
250
379
  - - ">="
251
380
  - !ruby/object:Gem::Version
252
- version: '0'
381
+ version: 2.6.0
253
382
  required_rubygems_version: !ruby/object:Gem::Requirement
254
383
  requirements:
255
384
  - - ">="
256
385
  - !ruby/object:Gem::Version
257
386
  version: '0'
258
387
  requirements: []
259
- rubygems_version: 3.1.3
260
- signing_key:
388
+ rubygems_version: 3.6.9
261
389
  specification_version: 4
262
390
  summary: A service skeleton with an emphasis on simplicity with a pinch a functional
263
391
  programming
@@ -272,6 +400,8 @@ test_files:
272
400
  - spec/acceptance/log_from_organizer_spec.rb
273
401
  - spec/acceptance/message_localization_spec.rb
274
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
275
405
  - spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
276
406
  - spec/acceptance/organizer/context_failure_and_skipping_spec.rb
277
407
  - spec/acceptance/organizer/execute_spec.rb
data/.travis.yml DELETED
@@ -1,24 +0,0 @@
1
- language: ruby
2
-
3
- env:
4
- - RUN_COVERAGE_REPORT=true
5
-
6
- rvm:
7
- - 2.5.3
8
- - 2.6.0
9
- - 2.7.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.gemfile
24
- - gemfiles/i18n_1_8.gemfile
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal", "~> 2.0"
6
- gem "dry-inflector", "~> 0.2.0"
7
-
8
- gemspec :path => "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal", "~> 2.0"
6
- gem "i18n", "~> 1.8.2"
7
-
8
- gemspec :path => "../"