decouplio 1.0.0alpha1 → 1.0.0alpha2
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/.rubocop.yml +4 -0
- data/README.md +26 -2
- data/benchmarks/Gemfile +2 -1
- data/benchmarks/multi_step_benchmark.rb +335 -0
- data/benchmarks/single_step_benchmark.rb +159 -0
- data/docker-compose.yml +13 -2
- data/docs/deny.rb +59 -0
- data/docs/doby.rb +1 -1
- data/docs/doby_deny.md +171 -0
- data/docs/fail.md +143 -0
- data/docs/fail.rb +126 -29
- data/docs/resq.md +2 -2
- data/docs/step.md +148 -0
- data/docs/step.rb +119 -18
- data/docs/step_as_a_service.md +25 -11
- data/docs/step_as_a_service.rb +2 -2
- data/docs/wrap.md +8 -0
- data/lib/decouplio/action.rb +22 -3
- data/lib/decouplio/composer.rb +78 -12
- data/lib/decouplio/const/reserved_methods.rb +13 -9
- data/lib/decouplio/const/results.rb +2 -0
- data/lib/decouplio/const/types.rb +11 -5
- data/lib/decouplio/const/validations/deny.rb +11 -0
- data/lib/decouplio/const/validations/fail.rb +1 -1
- data/lib/decouplio/errors/deny_can_not_be_first_step_error.rb +18 -0
- data/lib/decouplio/errors/{fail_is_first_step_error.rb → fail_can_not_be_first_step_error.rb} +1 -1
- data/lib/decouplio/logic_dsl.rb +14 -2
- data/lib/decouplio/options_validator.rb +8 -3
- data/lib/decouplio/steps/deny.rb +31 -0
- data/lib/decouplio/steps/doby.rb +5 -1
- data/lib/decouplio/steps/fail.rb +7 -22
- data/lib/decouplio/steps/inner_action_fail.rb +7 -22
- data/lib/decouplio/steps/inner_action_step.rb +7 -18
- data/lib/decouplio/steps/service_fail.rb +11 -23
- data/lib/decouplio/steps/service_pass.rb +4 -1
- data/lib/decouplio/steps/service_step.rb +11 -19
- data/lib/decouplio/steps/shared/fail_resolver.rb +40 -0
- data/lib/decouplio/steps/shared/step_resolver.rb +43 -0
- data/lib/decouplio/steps/step.rb +7 -18
- data/lib/decouplio/steps/wrap.rb +7 -18
- data/lib/decouplio/version.rb +1 -1
- metadata +12 -5
- data/benchmarks/benchmarks.rb +0 -527
- data/docs/doby.md +0 -80
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decouplio
|
4
|
+
module Steps
|
5
|
+
module Shared
|
6
|
+
class FailResolver
|
7
|
+
def self.call(instance:, result:, on_success_type:, on_failure_type:)
|
8
|
+
if result
|
9
|
+
case on_success_type
|
10
|
+
when Decouplio::Const::Results::STEP_PASS, Decouplio::Const::Results::PASS
|
11
|
+
instance.pass_action
|
12
|
+
Decouplio::Const::Results::PASS
|
13
|
+
when Decouplio::Const::Results::STEP_FAIL, Decouplio::Const::Results::FAIL
|
14
|
+
instance.fail_action
|
15
|
+
Decouplio::Const::Results::PASS
|
16
|
+
when Decouplio::Const::Results::FINISH_HIM
|
17
|
+
instance.fail_action
|
18
|
+
Decouplio::Const::Results::FINISH_HIM
|
19
|
+
end
|
20
|
+
elsif [
|
21
|
+
Decouplio::Const::Results::STEP_PASS,
|
22
|
+
Decouplio::Const::Results::PASS
|
23
|
+
].include?(on_failure_type)
|
24
|
+
instance.pass_action
|
25
|
+
Decouplio::Const::Results::FAIL
|
26
|
+
elsif [
|
27
|
+
Decouplio::Const::Results::STEP_FAIL,
|
28
|
+
Decouplio::Const::Results::FAIL
|
29
|
+
].include?(on_failure_type)
|
30
|
+
instance.fail_action
|
31
|
+
Decouplio::Const::Results::FAIL
|
32
|
+
elsif on_failure_type == Decouplio::Const::Results::FINISH_HIM
|
33
|
+
instance.fail_action
|
34
|
+
Decouplio::Const::Results::FINISH_HIM
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decouplio
|
4
|
+
module Steps
|
5
|
+
module Shared
|
6
|
+
class StepResolver
|
7
|
+
def self.call(instance:, result:, on_success_type:, on_failure_type:)
|
8
|
+
if result
|
9
|
+
if [
|
10
|
+
Decouplio::Const::Results::PASS,
|
11
|
+
Decouplio::Const::Results::FAIL,
|
12
|
+
Decouplio::Const::Results::STEP_PASS
|
13
|
+
].include?(on_success_type)
|
14
|
+
instance.pass_action
|
15
|
+
Decouplio::Const::Results::PASS
|
16
|
+
elsif Decouplio::Const::Results::STEP_FAIL == on_success_type
|
17
|
+
instance.fail_action
|
18
|
+
Decouplio::Const::Results::PASS
|
19
|
+
elsif on_success_type == Decouplio::Const::Results::FINISH_HIM
|
20
|
+
instance.pass_action
|
21
|
+
Decouplio::Const::Results::FINISH_HIM
|
22
|
+
end
|
23
|
+
elsif Decouplio::Const::Results::STEP_PASS == on_failure_type
|
24
|
+
instance.pass_action
|
25
|
+
Decouplio::Const::Results::PASS
|
26
|
+
elsif Decouplio::Const::Results::STEP_FAIL == on_failure_type
|
27
|
+
instance.fail_action
|
28
|
+
Decouplio::Const::Results::PASS
|
29
|
+
elsif on_failure_type == Decouplio::Const::Results::PASS
|
30
|
+
instance.pass_action
|
31
|
+
Decouplio::Const::Results::FAIL
|
32
|
+
elsif on_failure_type == Decouplio::Const::Results::FAIL
|
33
|
+
instance.fail_action
|
34
|
+
Decouplio::Const::Results::FAIL
|
35
|
+
elsif on_failure_type == Decouplio::Const::Results::FINISH_HIM
|
36
|
+
instance.fail_action
|
37
|
+
Decouplio::Const::Results::FINISH_HIM
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/decouplio/steps/step.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative 'base_step'
|
4
|
+
require_relative 'shared/step_resolver'
|
4
5
|
|
5
6
|
module Decouplio
|
6
7
|
module Steps
|
@@ -19,24 +20,12 @@ module Decouplio
|
|
19
20
|
end
|
20
21
|
|
21
22
|
def resolve(result:, instance:)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
Decouplio::Const::Results::FINISH_HIM
|
29
|
-
end
|
30
|
-
elsif @on_failure_type == Decouplio::Const::Results::PASS
|
31
|
-
instance.pass_action
|
32
|
-
Decouplio::Const::Results::FAIL
|
33
|
-
elsif @on_failure_type == Decouplio::Const::Results::FAIL
|
34
|
-
instance.fail_action
|
35
|
-
Decouplio::Const::Results::FAIL
|
36
|
-
elsif @on_failure_type == Decouplio::Const::Results::FINISH_HIM
|
37
|
-
instance.fail_action
|
38
|
-
Decouplio::Const::Results::FINISH_HIM
|
39
|
-
end
|
23
|
+
Decouplio::Steps::Shared::StepResolver.call(
|
24
|
+
instance: instance,
|
25
|
+
result: result,
|
26
|
+
on_success_type: @on_success_type,
|
27
|
+
on_failure_type: @on_failure_type
|
28
|
+
)
|
40
29
|
end
|
41
30
|
end
|
42
31
|
end
|
data/lib/decouplio/steps/wrap.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require_relative 'base_step'
|
4
4
|
require_relative '../processor'
|
5
|
+
require_relative 'shared/step_resolver'
|
5
6
|
|
6
7
|
module Decouplio
|
7
8
|
module Steps
|
@@ -38,24 +39,12 @@ module Decouplio
|
|
38
39
|
def resolve(instance:)
|
39
40
|
result = instance.success?
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
Decouplio::Const::Results::FINISH_HIM
|
48
|
-
end
|
49
|
-
elsif @on_failure_type == Decouplio::Const::Results::PASS
|
50
|
-
instance.pass_action
|
51
|
-
Decouplio::Const::Results::FAIL
|
52
|
-
elsif @on_failure_type == Decouplio::Const::Results::FAIL
|
53
|
-
instance.fail_action
|
54
|
-
Decouplio::Const::Results::FAIL
|
55
|
-
elsif @on_failure_type == Decouplio::Const::Results::FINISH_HIM
|
56
|
-
instance.fail_action
|
57
|
-
Decouplio::Const::Results::FINISH_HIM
|
58
|
-
end
|
42
|
+
Decouplio::Steps::Shared::StepResolver.call(
|
43
|
+
instance: instance,
|
44
|
+
result: result,
|
45
|
+
on_success_type: @on_success_type,
|
46
|
+
on_failure_type: @on_failure_type
|
47
|
+
)
|
59
48
|
end
|
60
49
|
end
|
61
50
|
end
|
data/lib/decouplio/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decouplio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.0alpha2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Bal
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -120,7 +120,8 @@ files:
|
|
120
120
|
- benchmarks/.ruby-version
|
121
121
|
- benchmarks/Dockerfile
|
122
122
|
- benchmarks/Gemfile
|
123
|
-
- benchmarks/
|
123
|
+
- benchmarks/multi_step_benchmark.rb
|
124
|
+
- benchmarks/single_step_benchmark.rb
|
124
125
|
- bin/console
|
125
126
|
- bin/setup
|
126
127
|
- decouplio.gemspec
|
@@ -129,8 +130,9 @@ files:
|
|
129
130
|
- docs/benchmarks.md
|
130
131
|
- docs/context.md
|
131
132
|
- docs/context.rb
|
132
|
-
- docs/
|
133
|
+
- docs/deny.rb
|
133
134
|
- docs/doby.rb
|
135
|
+
- docs/doby_deny.md
|
134
136
|
- docs/error_store.md
|
135
137
|
- docs/error_store.rb
|
136
138
|
- docs/fail.md
|
@@ -162,6 +164,7 @@ files:
|
|
162
164
|
- lib/decouplio/const/types.rb
|
163
165
|
- lib/decouplio/const/validations/action_option_class.rb
|
164
166
|
- lib/decouplio/const/validations/common.rb
|
167
|
+
- lib/decouplio/const/validations/deny.rb
|
165
168
|
- lib/decouplio/const/validations/fail.rb
|
166
169
|
- lib/decouplio/const/validations/logic.rb
|
167
170
|
- lib/decouplio/const/validations/octo.rb
|
@@ -173,6 +176,7 @@ files:
|
|
173
176
|
- lib/decouplio/default_error_handler.rb
|
174
177
|
- lib/decouplio/errors/action_class_error.rb
|
175
178
|
- lib/decouplio/errors/base_error.rb
|
179
|
+
- lib/decouplio/errors/deny_can_not_be_first_step_error.rb
|
176
180
|
- lib/decouplio/errors/error_store_error.rb
|
177
181
|
- lib/decouplio/errors/extra_key_for_fail_error.rb
|
178
182
|
- lib/decouplio/errors/extra_key_for_octo_error.rb
|
@@ -180,9 +184,9 @@ files:
|
|
180
184
|
- lib/decouplio/errors/extra_key_for_resq_error.rb
|
181
185
|
- lib/decouplio/errors/extra_key_for_step_error.rb
|
182
186
|
- lib/decouplio/errors/extra_key_for_wrap_error.rb
|
187
|
+
- lib/decouplio/errors/fail_can_not_be_first_step_error.rb
|
183
188
|
- lib/decouplio/errors/fail_controversial_keys_error.rb
|
184
189
|
- lib/decouplio/errors/fail_finish_him_error.rb
|
185
|
-
- lib/decouplio/errors/fail_is_first_step_error.rb
|
186
190
|
- lib/decouplio/errors/invalid_error_class_error.rb
|
187
191
|
- lib/decouplio/errors/invalid_wrap_name_error.rb
|
188
192
|
- lib/decouplio/errors/logic_is_not_defined_error.rb
|
@@ -217,6 +221,7 @@ files:
|
|
217
221
|
- lib/decouplio/processor.rb
|
218
222
|
- lib/decouplio/steps/base_resq.rb
|
219
223
|
- lib/decouplio/steps/base_step.rb
|
224
|
+
- lib/decouplio/steps/deny.rb
|
220
225
|
- lib/decouplio/steps/doby.rb
|
221
226
|
- lib/decouplio/steps/fail.rb
|
222
227
|
- lib/decouplio/steps/if_condition_fail.rb
|
@@ -231,6 +236,8 @@ files:
|
|
231
236
|
- lib/decouplio/steps/service_fail.rb
|
232
237
|
- lib/decouplio/steps/service_pass.rb
|
233
238
|
- lib/decouplio/steps/service_step.rb
|
239
|
+
- lib/decouplio/steps/shared/fail_resolver.rb
|
240
|
+
- lib/decouplio/steps/shared/step_resolver.rb
|
234
241
|
- lib/decouplio/steps/step.rb
|
235
242
|
- lib/decouplio/steps/unless_condition_fail.rb
|
236
243
|
- lib/decouplio/steps/unless_condition_pass.rb
|