light-service 0.13.0 → 0.17.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 +28 -0
- data/.travis.yml +3 -9
- data/Appraisals +0 -4
- data/Gemfile +0 -2
- data/README.md +287 -51
- data/RELEASES.md +21 -2
- data/gemfiles/activesupport_5.gemfile +0 -1
- data/gemfiles/activesupport_6.gemfile +0 -1
- data/lib/generators/light_service/action_generator.rb +90 -0
- data/lib/generators/light_service/generator_utils.rb +45 -0
- data/lib/generators/light_service/organizer_generator.rb +66 -0
- data/lib/generators/light_service/templates/action_spec_template.erb +31 -0
- data/lib/generators/light_service/templates/action_template.erb +30 -0
- data/lib/generators/light_service/templates/organizer_spec_template.erb +20 -0
- data/lib/generators/light_service/templates/organizer_template.erb +22 -0
- data/lib/light-service/action.rb +61 -4
- data/lib/light-service/context/key_verifier.rb +18 -1
- data/lib/light-service/context.rb +5 -3
- data/lib/light-service/errors.rb +1 -0
- data/lib/light-service/organizer/reduce_if_else.rb +21 -0
- data/lib/light-service/organizer/with_reducer.rb +12 -7
- data/lib/light-service/organizer/with_reducer_factory.rb +1 -1
- data/lib/light-service/organizer/with_reducer_log_decorator.rb +3 -0
- data/lib/light-service/organizer.rb +16 -3
- data/lib/light-service/version.rb +1 -1
- data/lib/light-service.rb +1 -0
- data/light-service.gemspec +6 -1
- data/spec/acceptance/after_actions_spec.rb +17 -0
- data/spec/acceptance/around_each_spec.rb +15 -0
- data/spec/acceptance/log_from_organizer_spec.rb +1 -1
- data/spec/acceptance/organizer/add_to_context_spec.rb +27 -0
- data/spec/acceptance/organizer/execute_with_add_to_context_spec.rb +28 -0
- data/spec/acceptance/organizer/iterate_spec.rb +7 -0
- data/spec/acceptance/organizer/reduce_if_else_spec.rb +60 -0
- data/spec/acceptance/organizer/reduce_if_spec.rb +6 -0
- data/spec/acceptance/organizer/reduce_until_spec.rb +6 -0
- data/spec/action_optional_expected_keys_spec.rb +82 -0
- data/spec/action_spec.rb +8 -0
- data/spec/lib/generators/action_generator_advanced_spec.rb +43 -0
- data/spec/lib/generators/action_generator_simple_spec.rb +37 -0
- data/spec/lib/generators/full_generator_test_blobs.rb +193 -0
- data/spec/lib/generators/organizer_generator_advanced_spec.rb +37 -0
- data/spec/lib/generators/organizer_generator_simple_spec.rb +37 -0
- data/spec/organizer_spec.rb +5 -0
- data/spec/spec_helper.rb +5 -1
- data/spec/test_doubles.rb +37 -0
- metadata +87 -9
- data/gemfiles/activesupport_3.gemfile +0 -8
- data/gemfiles/activesupport_4.gemfile +0 -8
- data/resources/orchestrators_deprecated.svg +0 -10
data/spec/organizer_spec.rb
CHANGED
@@ -19,6 +19,11 @@ describe LightService::Organizer do
|
|
19
19
|
result = TestDoubles::AnOrganizer.call(:user => user)
|
20
20
|
expect(result).to eq(ctx)
|
21
21
|
end
|
22
|
+
|
23
|
+
it "sets itself as the organizer" do
|
24
|
+
result = TestDoubles::AnOrganizer.call(:user => user)
|
25
|
+
expect(result.organized_by).to eq TestDoubles::AnOrganizer
|
26
|
+
end
|
22
27
|
end
|
23
28
|
|
24
29
|
context "when #with is called with Context" do
|
data/spec/spec_helper.rb
CHANGED
@@ -8,8 +8,10 @@ if ENV['RUN_COVERAGE_REPORT']
|
|
8
8
|
add_filter 'vendor/'
|
9
9
|
add_filter %r{^/spec/}
|
10
10
|
end
|
11
|
-
|
12
11
|
SimpleCov.minimum_coverage_by_file 90
|
12
|
+
|
13
|
+
require 'codecov'
|
14
|
+
SimpleCov.formatter = SimpleCov::Formatter::Codecov
|
13
15
|
end
|
14
16
|
|
15
17
|
require 'light-service'
|
@@ -19,5 +21,7 @@ require 'pry'
|
|
19
21
|
require 'support'
|
20
22
|
require 'test_doubles'
|
21
23
|
require 'stringio'
|
24
|
+
require 'fileutils'
|
25
|
+
require 'generator_spec'
|
22
26
|
|
23
27
|
I18n.enforce_available_locales = true
|
data/spec/test_doubles.rb
CHANGED
@@ -74,6 +74,16 @@ module TestDoubles
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
class AroundEachWithReduceIfOrganizer
|
78
|
+
extend LightService::Organizer
|
79
|
+
|
80
|
+
def self.call(action_arguments)
|
81
|
+
with(action_arguments)
|
82
|
+
.around_each(AroundEachLoggerHandler)
|
83
|
+
.reduce(ReduceIfOrganizer.actions)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
77
87
|
class AddsTwoActionWithFetch
|
78
88
|
extend LightService::Action
|
79
89
|
|
@@ -566,6 +576,33 @@ module TestDoubles
|
|
566
576
|
end
|
567
577
|
end
|
568
578
|
|
579
|
+
class AddsNumbersWithOptionalDefaults
|
580
|
+
extend LightService::Action
|
581
|
+
|
582
|
+
expects :first_number
|
583
|
+
expects :second_number, :default => ->(ctx) { ctx[:first_number] + 7 }
|
584
|
+
expects :third_number, :default => 10
|
585
|
+
promises :total
|
586
|
+
|
587
|
+
executed do |ctx|
|
588
|
+
ctx.total = ctx.first_number + ctx.second_number + ctx.third_number
|
589
|
+
end
|
590
|
+
end
|
591
|
+
|
592
|
+
class OrganizerWithActionsUsingDefaults
|
593
|
+
extend LightService::Organizer
|
594
|
+
def self.call
|
595
|
+
with(:first_number => 1, :number => 1).reduce(actions)
|
596
|
+
end
|
597
|
+
|
598
|
+
def self.actions
|
599
|
+
[
|
600
|
+
AddsNumbersWithOptionalDefaults,
|
601
|
+
AddToTotalAction
|
602
|
+
]
|
603
|
+
end
|
604
|
+
end
|
605
|
+
|
569
606
|
class AnOrganizerThatAddsToContext
|
570
607
|
extend LightService::Organizer
|
571
608
|
def self.call
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: light-service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Attila Domokos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,14 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 4.0.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:
|
26
|
+
version: 4.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: generator_spec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.4
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.9.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: test-unit
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: appraisal
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.3'
|
27
69
|
- !ruby/object:Gem::Dependency
|
28
70
|
name: rspec
|
29
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +94,20 @@ dependencies:
|
|
52
94
|
- - "~>"
|
53
95
|
- !ruby/object:Gem::Version
|
54
96
|
version: '0.17'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: codecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.1'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.1'
|
55
111
|
- !ruby/object:Gem::Dependency
|
56
112
|
name: rubocop
|
57
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,6 +157,7 @@ executables: []
|
|
101
157
|
extensions: []
|
102
158
|
extra_rdoc_files: []
|
103
159
|
files:
|
160
|
+
- ".github/workflows/project-build.yml"
|
104
161
|
- ".gitignore"
|
105
162
|
- ".rspec"
|
106
163
|
- ".rubocop.yml"
|
@@ -112,10 +169,15 @@ files:
|
|
112
169
|
- README.md
|
113
170
|
- RELEASES.md
|
114
171
|
- Rakefile
|
115
|
-
- gemfiles/activesupport_3.gemfile
|
116
|
-
- gemfiles/activesupport_4.gemfile
|
117
172
|
- gemfiles/activesupport_5.gemfile
|
118
173
|
- gemfiles/activesupport_6.gemfile
|
174
|
+
- lib/generators/light_service/action_generator.rb
|
175
|
+
- lib/generators/light_service/generator_utils.rb
|
176
|
+
- lib/generators/light_service/organizer_generator.rb
|
177
|
+
- lib/generators/light_service/templates/action_spec_template.erb
|
178
|
+
- lib/generators/light_service/templates/action_template.erb
|
179
|
+
- lib/generators/light_service/templates/organizer_spec_template.erb
|
180
|
+
- lib/generators/light_service/templates/organizer_template.erb
|
119
181
|
- lib/light-service.rb
|
120
182
|
- lib/light-service/action.rb
|
121
183
|
- lib/light-service/configuration.rb
|
@@ -128,6 +190,7 @@ files:
|
|
128
190
|
- lib/light-service/organizer/execute.rb
|
129
191
|
- lib/light-service/organizer/iterate.rb
|
130
192
|
- lib/light-service/organizer/reduce_if.rb
|
193
|
+
- lib/light-service/organizer/reduce_if_else.rb
|
131
194
|
- lib/light-service/organizer/reduce_until.rb
|
132
195
|
- lib/light-service/organizer/scoped_reducable.rb
|
133
196
|
- lib/light-service/organizer/verify_call_method_exists.rb
|
@@ -141,7 +204,6 @@ files:
|
|
141
204
|
- light-service.gemspec
|
142
205
|
- resources/fail_actions.png
|
143
206
|
- resources/light-service.png
|
144
|
-
- resources/orchestrators_deprecated.svg
|
145
207
|
- resources/organizer_and_actions.png
|
146
208
|
- resources/skip_actions.png
|
147
209
|
- spec/acceptance/add_numbers_spec.rb
|
@@ -166,7 +228,9 @@ files:
|
|
166
228
|
- spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
|
167
229
|
- spec/acceptance/organizer/context_failure_and_skipping_spec.rb
|
168
230
|
- spec/acceptance/organizer/execute_spec.rb
|
231
|
+
- spec/acceptance/organizer/execute_with_add_to_context_spec.rb
|
169
232
|
- spec/acceptance/organizer/iterate_spec.rb
|
233
|
+
- spec/acceptance/organizer/reduce_if_else_spec.rb
|
170
234
|
- spec/acceptance/organizer/reduce_if_spec.rb
|
171
235
|
- spec/acceptance/organizer/reduce_until_spec.rb
|
172
236
|
- spec/acceptance/organizer/with_callback_spec.rb
|
@@ -175,10 +239,16 @@ files:
|
|
175
239
|
- spec/acceptance/testing/context_factory_spec.rb
|
176
240
|
- spec/action_expected_keys_spec.rb
|
177
241
|
- spec/action_expects_and_promises_spec.rb
|
242
|
+
- spec/action_optional_expected_keys_spec.rb
|
178
243
|
- spec/action_promised_keys_spec.rb
|
179
244
|
- spec/action_spec.rb
|
180
245
|
- spec/context/inspect_spec.rb
|
181
246
|
- spec/context_spec.rb
|
247
|
+
- spec/lib/generators/action_generator_advanced_spec.rb
|
248
|
+
- spec/lib/generators/action_generator_simple_spec.rb
|
249
|
+
- spec/lib/generators/full_generator_test_blobs.rb
|
250
|
+
- spec/lib/generators/organizer_generator_advanced_spec.rb
|
251
|
+
- spec/lib/generators/organizer_generator_simple_spec.rb
|
182
252
|
- spec/localization_adapter_spec.rb
|
183
253
|
- spec/organizer/with_reducer_spec.rb
|
184
254
|
- spec/organizer_key_aliases_spec.rb
|
@@ -211,14 +281,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
211
281
|
requirements:
|
212
282
|
- - ">="
|
213
283
|
- !ruby/object:Gem::Version
|
214
|
-
version:
|
284
|
+
version: 2.5.0
|
215
285
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
286
|
requirements:
|
217
287
|
- - ">="
|
218
288
|
- !ruby/object:Gem::Version
|
219
289
|
version: '0'
|
220
290
|
requirements: []
|
221
|
-
rubygems_version: 3.1.
|
291
|
+
rubygems_version: 3.1.6
|
222
292
|
signing_key:
|
223
293
|
specification_version: 4
|
224
294
|
summary: A service skeleton with an emphasis on simplicity
|
@@ -245,7 +315,9 @@ test_files:
|
|
245
315
|
- spec/acceptance/organizer/around_each_with_reduce_if_spec.rb
|
246
316
|
- spec/acceptance/organizer/context_failure_and_skipping_spec.rb
|
247
317
|
- spec/acceptance/organizer/execute_spec.rb
|
318
|
+
- spec/acceptance/organizer/execute_with_add_to_context_spec.rb
|
248
319
|
- spec/acceptance/organizer/iterate_spec.rb
|
320
|
+
- spec/acceptance/organizer/reduce_if_else_spec.rb
|
249
321
|
- spec/acceptance/organizer/reduce_if_spec.rb
|
250
322
|
- spec/acceptance/organizer/reduce_until_spec.rb
|
251
323
|
- spec/acceptance/organizer/with_callback_spec.rb
|
@@ -254,10 +326,16 @@ test_files:
|
|
254
326
|
- spec/acceptance/testing/context_factory_spec.rb
|
255
327
|
- spec/action_expected_keys_spec.rb
|
256
328
|
- spec/action_expects_and_promises_spec.rb
|
329
|
+
- spec/action_optional_expected_keys_spec.rb
|
257
330
|
- spec/action_promised_keys_spec.rb
|
258
331
|
- spec/action_spec.rb
|
259
332
|
- spec/context/inspect_spec.rb
|
260
333
|
- spec/context_spec.rb
|
334
|
+
- spec/lib/generators/action_generator_advanced_spec.rb
|
335
|
+
- spec/lib/generators/action_generator_simple_spec.rb
|
336
|
+
- spec/lib/generators/full_generator_test_blobs.rb
|
337
|
+
- spec/lib/generators/organizer_generator_advanced_spec.rb
|
338
|
+
- spec/lib/generators/organizer_generator_simple_spec.rb
|
261
339
|
- spec/localization_adapter_spec.rb
|
262
340
|
- spec/organizer/with_reducer_spec.rb
|
263
341
|
- spec/organizer_key_aliases_spec.rb
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<svg version="1.1"
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
4
|
-
xmlns:xlink="http://www.w3.org/1999/xlink"
|
5
|
-
width="350" height="20"
|
6
|
-
>
|
7
|
-
<text font-size="20" x="0" y="20" font-family="Verdana">
|
8
|
-
<tspan fill="red">Orchestrators are DEPRECATED!</tspan>
|
9
|
-
</text>
|
10
|
-
</svg>
|