decouplio 1.0.0alpha → 1.0.0alpha3
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 +336 -0
- data/benchmarks/single_step_benchmark.rb +159 -0
- data/decouplio.gemspec +1 -1
- data/docker-compose.yml +13 -2
- data/docs/aide.rb +59 -0
- data/docs/doby.rb +1 -1
- data/docs/doby_aide.md +208 -0
- data/docs/fail.md +143 -0
- data/docs/fail.rb +126 -29
- data/docs/index.md +1 -1
- data/docs/logic_block.md +4 -0
- data/docs/octo.md +59 -2
- data/docs/quick_start.md +1 -1
- 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 +91 -20
- data/lib/decouplio/const/doby_aide_options.rb +15 -0
- data/lib/decouplio/const/reserved_methods.rb +13 -9
- data/lib/decouplio/const/results.rb +2 -0
- data/lib/decouplio/const/types.rb +19 -5
- data/lib/decouplio/const/validations/aide.rb +38 -0
- data/lib/decouplio/const/validations/doby.rb +36 -0
- data/lib/decouplio/const/validations/fail.rb +5 -1
- data/lib/decouplio/const/validations/octo.rb +2 -1
- data/lib/decouplio/errors/aide_can_not_be_first_step_error.rb +18 -0
- data/lib/decouplio/errors/aide_controversial_keys_error.rb +26 -0
- data/lib/decouplio/errors/aide_finish_him_error.rb +26 -0
- data/lib/decouplio/errors/doby_controversial_keys_error.rb +26 -0
- data/lib/decouplio/errors/doby_finish_him_error.rb +26 -0
- data/lib/decouplio/errors/{fail_is_first_step_error.rb → fail_can_not_be_first_step_error.rb} +1 -1
- data/lib/decouplio/errors/step_is_not_defined_for_aide_error.rb +26 -0
- data/lib/decouplio/errors/step_is_not_defined_for_doby_error.rb +27 -0
- data/lib/decouplio/logic_dsl.rb +30 -3
- data/lib/decouplio/options_validator.rb +122 -8
- data/lib/decouplio/steps/aide.rb +37 -0
- data/lib/decouplio/steps/doby.rb +14 -9
- 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/octo.rb +7 -2
- 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/validators/condition.rb +10 -0
- data/lib/decouplio/version.rb +1 -1
- metadata +22 -7
- 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
|
@@ -42,6 +42,16 @@ module Decouplio
|
|
42
42
|
errored_option: condition_options.to_s,
|
43
43
|
details: %i[if unless]
|
44
44
|
)
|
45
|
+
when Decouplio::Const::Types::DOBY_TYPE
|
46
|
+
raise Decouplio::Errors::DobyControversialKeysError.new(
|
47
|
+
errored_option: condition_options.to_s,
|
48
|
+
details: %i[if unless]
|
49
|
+
)
|
50
|
+
when Decouplio::Const::Types::AIDE_TYPE
|
51
|
+
raise Decouplio::Errors::AideControversialKeysError.new(
|
52
|
+
errored_option: condition_options.to_s,
|
53
|
+
details: %i[if unless]
|
54
|
+
)
|
45
55
|
end
|
46
56
|
end
|
47
57
|
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.0alpha3
|
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-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -120,17 +120,19 @@ 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
|
127
128
|
- docker-compose.yml
|
128
129
|
- docs/_config.yml
|
130
|
+
- docs/aide.rb
|
129
131
|
- docs/benchmarks.md
|
130
132
|
- docs/context.md
|
131
133
|
- docs/context.rb
|
132
|
-
- docs/doby.md
|
133
134
|
- docs/doby.rb
|
135
|
+
- docs/doby_aide.md
|
134
136
|
- docs/error_store.md
|
135
137
|
- docs/error_store.rb
|
136
138
|
- docs/fail.md
|
@@ -157,11 +159,14 @@ files:
|
|
157
159
|
- lib/decouplio/action.rb
|
158
160
|
- lib/decouplio/composer.rb
|
159
161
|
- lib/decouplio/const/colors.rb
|
162
|
+
- lib/decouplio/const/doby_aide_options.rb
|
160
163
|
- lib/decouplio/const/reserved_methods.rb
|
161
164
|
- lib/decouplio/const/results.rb
|
162
165
|
- lib/decouplio/const/types.rb
|
163
166
|
- lib/decouplio/const/validations/action_option_class.rb
|
167
|
+
- lib/decouplio/const/validations/aide.rb
|
164
168
|
- lib/decouplio/const/validations/common.rb
|
169
|
+
- lib/decouplio/const/validations/doby.rb
|
165
170
|
- lib/decouplio/const/validations/fail.rb
|
166
171
|
- lib/decouplio/const/validations/logic.rb
|
167
172
|
- lib/decouplio/const/validations/octo.rb
|
@@ -172,7 +177,12 @@ files:
|
|
172
177
|
- lib/decouplio/const/validations/wrap.rb
|
173
178
|
- lib/decouplio/default_error_handler.rb
|
174
179
|
- lib/decouplio/errors/action_class_error.rb
|
180
|
+
- lib/decouplio/errors/aide_can_not_be_first_step_error.rb
|
181
|
+
- lib/decouplio/errors/aide_controversial_keys_error.rb
|
182
|
+
- lib/decouplio/errors/aide_finish_him_error.rb
|
175
183
|
- lib/decouplio/errors/base_error.rb
|
184
|
+
- lib/decouplio/errors/doby_controversial_keys_error.rb
|
185
|
+
- lib/decouplio/errors/doby_finish_him_error.rb
|
176
186
|
- lib/decouplio/errors/error_store_error.rb
|
177
187
|
- lib/decouplio/errors/extra_key_for_fail_error.rb
|
178
188
|
- lib/decouplio/errors/extra_key_for_octo_error.rb
|
@@ -180,9 +190,9 @@ files:
|
|
180
190
|
- lib/decouplio/errors/extra_key_for_resq_error.rb
|
181
191
|
- lib/decouplio/errors/extra_key_for_step_error.rb
|
182
192
|
- lib/decouplio/errors/extra_key_for_wrap_error.rb
|
193
|
+
- lib/decouplio/errors/fail_can_not_be_first_step_error.rb
|
183
194
|
- lib/decouplio/errors/fail_controversial_keys_error.rb
|
184
195
|
- lib/decouplio/errors/fail_finish_him_error.rb
|
185
|
-
- lib/decouplio/errors/fail_is_first_step_error.rb
|
186
196
|
- lib/decouplio/errors/invalid_error_class_error.rb
|
187
197
|
- lib/decouplio/errors/invalid_wrap_name_error.rb
|
188
198
|
- lib/decouplio/errors/logic_is_not_defined_error.rb
|
@@ -201,6 +211,8 @@ files:
|
|
201
211
|
- lib/decouplio/errors/resq_handler_method_error.rb
|
202
212
|
- lib/decouplio/errors/step_controversial_keys_error.rb
|
203
213
|
- lib/decouplio/errors/step_finish_him_error.rb
|
214
|
+
- lib/decouplio/errors/step_is_not_defined_for_aide_error.rb
|
215
|
+
- lib/decouplio/errors/step_is_not_defined_for_doby_error.rb
|
204
216
|
- lib/decouplio/errors/step_is_not_defined_for_fail_error.rb
|
205
217
|
- lib/decouplio/errors/step_is_not_defined_for_step_error.rb
|
206
218
|
- lib/decouplio/errors/step_is_not_defined_for_wrap_error.rb
|
@@ -215,6 +227,7 @@ files:
|
|
215
227
|
- lib/decouplio/octo_options_validator.rb
|
216
228
|
- lib/decouplio/options_validator.rb
|
217
229
|
- lib/decouplio/processor.rb
|
230
|
+
- lib/decouplio/steps/aide.rb
|
218
231
|
- lib/decouplio/steps/base_resq.rb
|
219
232
|
- lib/decouplio/steps/base_step.rb
|
220
233
|
- lib/decouplio/steps/doby.rb
|
@@ -231,17 +244,19 @@ files:
|
|
231
244
|
- lib/decouplio/steps/service_fail.rb
|
232
245
|
- lib/decouplio/steps/service_pass.rb
|
233
246
|
- lib/decouplio/steps/service_step.rb
|
247
|
+
- lib/decouplio/steps/shared/fail_resolver.rb
|
248
|
+
- lib/decouplio/steps/shared/step_resolver.rb
|
234
249
|
- lib/decouplio/steps/step.rb
|
235
250
|
- lib/decouplio/steps/unless_condition_fail.rb
|
236
251
|
- lib/decouplio/steps/unless_condition_pass.rb
|
237
252
|
- lib/decouplio/steps/wrap.rb
|
238
253
|
- lib/decouplio/validators/condition.rb
|
239
254
|
- lib/decouplio/version.rb
|
240
|
-
homepage:
|
255
|
+
homepage: https://github.com/differencialx/decouplio
|
241
256
|
licenses:
|
242
257
|
- MIT
|
243
258
|
metadata:
|
244
|
-
homepage_uri:
|
259
|
+
homepage_uri: https://github.com/differencialx/decouplio
|
245
260
|
source_code_uri: https://github.com/differencialx/decouplio
|
246
261
|
changelog_uri: https://github.com/differencialx/decouplio/CHANGELOG.md
|
247
262
|
post_install_message:
|