convenient_service 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -0
- data/lib/convenient_service/configs/minimal.rb +12 -2
- data/lib/convenient_service/configs/standard.rb +0 -4
- data/lib/convenient_service/examples/standard/gemfile/services/assert_npm_package_available.rb +10 -0
- data/lib/convenient_service/examples/standard/gemfile/services/format.rb +10 -0
- data/lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb +10 -0
- data/lib/convenient_service/examples/standard/gemfile/services/parse_content.rb +10 -0
- data/lib/convenient_service/examples/standard/gemfile/services/read_file_content.rb +10 -0
- data/lib/convenient_service/examples/standard/gemfile/services/replace_file_content.rb +10 -0
- data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_body.rb +10 -0
- data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_path.rb +10 -0
- data/lib/convenient_service/examples/standard/request_params/services/validate_casted_params.rb +10 -0
- data/lib/convenient_service/examples/standard/request_params/services/validate_uncasted_params.rb +10 -0
- data/lib/convenient_service/factories/services.rb +40 -0
- data/lib/convenient_service/factories/step/instance.rb +11 -1
- data/lib/convenient_service/rspec/matchers/custom/delegate_to/entities/matcher.rb +2 -2
- data/lib/convenient_service/rspec/matchers/custom/results/base/commands/find_result_method_step.rb +4 -4
- data/lib/convenient_service/rspec/matchers/custom/results/base/commands/find_result_result_method_step.rb +4 -4
- data/lib/convenient_service/rspec/matchers/custom/results/base/commands/find_result_service_step.rb +1 -1
- data/lib/convenient_service/service/plugins/aliases.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_method_steps → can_have_method_steps}/middleware.rb +12 -2
- data/lib/convenient_service/service/plugins/can_have_method_steps.rb +3 -0
- data/lib/convenient_service/service/plugins/can_have_result_step/middleware.rb +43 -0
- data/lib/convenient_service/service/plugins/can_have_result_step.rb +3 -0
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/commands/create_step_class.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/concern.rb +8 -8
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/commands/cast_method.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/commands/cast_method_caller.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/commands/cast_method_direction.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/commands/cast_method_key.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/commands/cast_method_name.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/commands/define_method_in_container.rb +3 -3
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/concern/class_methods.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/concern/instance_methods.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers/alias.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers/base.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers/proc.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers/raw.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers/reassignment/commands/define_method_in_container.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers/reassignment.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers/usual.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/directions/base.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/directions/input.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/directions/output.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/key.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/name.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/values/reassignment.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/errors.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/service/class_methods.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/service.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/commands/cast_params.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/commands/extract_params.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/concern/instance_methods.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/errors.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/plugins/can_have_parent_result/middleware.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/plugins/has_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/structs/params.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step.rb +1 -1
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step_collection.rb +2 -2
- data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/middleware.rb +4 -4
- data/lib/convenient_service/service/plugins/can_have_steps.rb +6 -0
- data/lib/convenient_service/service/plugins/can_have_stubbed_result/concern.rb +18 -1
- data/lib/convenient_service/service/plugins.rb +3 -2
- data/lib/convenient_service/version.rb +1 -1
- metadata +59 -57
- data/lib/convenient_service/service/plugins/has_result_method_steps.rb +0 -3
- data/lib/convenient_service/service/plugins/has_result_steps.rb +0 -6
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/commands.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/commands.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers/reassignment/commands.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/callers.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/directions.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities/values.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/method/entities.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/commands.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/plugins/can_have_parent_result.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/plugins/has_inspect.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/plugins.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities/step/structs.rb +0 -0
- /data/lib/convenient_service/service/plugins/{has_result_steps → can_have_steps}/entities.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1f3cda1e00bba0f7e8c4e86e8831d6bb55385302c2da872cc6a205970938558
|
4
|
+
data.tar.gz: be1745b3ef9fbc5e7c892d2b15b65eda18afa2879a8c5253d67effe3c9f0c506
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9fe6b8fe017c94dec0516b342d1d1bce0ee968487b94cb0695414a5f5781c4cd95e1b42ec2e31f746df430caec82e2c2d39c6423d638bf838d17ab72ba8816c6
|
7
|
+
data.tar.gz: 4972e2fe5f288b989d42260eb86f4750614a9a16bc2b08a98eae2f6b94c8fb32f10d05daf33f37c9213ec1e134f4962a7c4d9dfba380351c801811acc7eabb01
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,35 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [0.11.0](https://github.com/marian13/convenient_service/compare/v0.10.1...v0.11.0) (2023-03-04)
|
4
|
+
|
5
|
+
|
6
|
+
### ⚠ BREAKING CHANGES
|
7
|
+
|
8
|
+
* **can_have_method_steps:** rename has_result_method_steps to can_have_method_steps
|
9
|
+
* **can_have_steps:** rename has_result_steps to can_have_steps
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* **can_have_method_steps:** disable CanHaveMethodSteps in Standard config ([af0b039](https://github.com/marian13/convenient_service/commit/af0b039c827769441bb5adc150d0e0ff2a43e220))
|
14
|
+
|
15
|
+
|
16
|
+
### Code Refactoring
|
17
|
+
|
18
|
+
* **can_have_method_steps:** rename has_result_method_steps to can_have_method_steps ([39901a3](https://github.com/marian13/convenient_service/commit/39901a31e37536ae81c6961b45a8c35e505aaefa))
|
19
|
+
* **can_have_steps:** rename has_result_steps to can_have_steps ([691d8e1](https://github.com/marian13/convenient_service/commit/691d8e128fc4ff8d1dfa76e365501b0d2028a5aa))
|
20
|
+
|
21
|
+
|
22
|
+
### Miscellaneous Chores
|
23
|
+
|
24
|
+
* release 0.11.0 ([dc6282a](https://github.com/marian13/convenient_service/commit/dc6282a7a09e5194c395b2399bd418a0e4d15de9))
|
25
|
+
|
26
|
+
## [0.10.1](https://github.com/marian13/convenient_service/compare/v0.10.0...v0.10.1) (2023-03-02)
|
27
|
+
|
28
|
+
|
29
|
+
### Bug Fixes
|
30
|
+
|
31
|
+
* **can_have_stubbed_result:** add thread-safety ([1962dcc](https://github.com/marian13/convenient_service/commit/1962dccdea29fb36c1b581e312329f41bb23c179))
|
32
|
+
|
3
33
|
## [0.10.0](https://github.com/marian13/convenient_service/compare/v0.9.0...v0.10.0) (2023-03-01)
|
4
34
|
|
5
35
|
|
@@ -34,7 +34,7 @@ module ConvenientService
|
|
34
34
|
use Plugins::Common::HasConstructorWithoutInitialize::Concern
|
35
35
|
|
36
36
|
use Plugins::Service::HasResult::Concern
|
37
|
-
use Plugins::Service::
|
37
|
+
use Plugins::Service::CanHaveSteps::Concern
|
38
38
|
end
|
39
39
|
|
40
40
|
middlewares :initialize do
|
@@ -45,7 +45,7 @@ module ConvenientService
|
|
45
45
|
use Plugins::Common::NormalizesEnv::Middleware
|
46
46
|
|
47
47
|
use Plugins::Service::HasResult::Middleware
|
48
|
-
use Plugins::Service::
|
48
|
+
use Plugins::Service::CanHaveSteps::Middleware
|
49
49
|
end
|
50
50
|
|
51
51
|
middlewares :step do
|
@@ -70,6 +70,16 @@ module ConvenientService
|
|
70
70
|
|
71
71
|
middlewares :step, scope: :class do
|
72
72
|
use Plugins::Common::NormalizesEnv::Middleware
|
73
|
+
|
74
|
+
##
|
75
|
+
# IMPORTANT:
|
76
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
77
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
78
|
+
# - Do not use it in production yet.
|
79
|
+
#
|
80
|
+
# use Plugins::Service::CanHaveMethodSteps::Middleware
|
81
|
+
|
82
|
+
use Plugins::Service::CanHaveResultStep::Middleware
|
73
83
|
end
|
74
84
|
|
75
85
|
class self::Internals
|
@@ -66,10 +66,6 @@ module ConvenientService
|
|
66
66
|
use Plugins::Service::HasResultShortSyntax::Error::Middleware
|
67
67
|
end
|
68
68
|
|
69
|
-
middlewares :step, scope: :class do
|
70
|
-
use Plugins::Service::HasResultMethodSteps::Middleware
|
71
|
-
end
|
72
|
-
|
73
69
|
class self::Result
|
74
70
|
concerns do
|
75
71
|
use Plugins::Result::HasResultShortSyntax::Concern
|
data/lib/convenient_service/examples/standard/gemfile/services/assert_npm_package_available.rb
CHANGED
@@ -13,6 +13,16 @@ module ConvenientService
|
|
13
13
|
class AssertNpmPackageAvailable
|
14
14
|
include ConvenientService::Standard::Config
|
15
15
|
|
16
|
+
##
|
17
|
+
# IMPORTANT:
|
18
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
19
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
20
|
+
# - Do not use it in production yet.
|
21
|
+
#
|
22
|
+
middlewares :step, scope: :class do
|
23
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
24
|
+
end
|
25
|
+
|
16
26
|
attr_reader :name
|
17
27
|
|
18
28
|
step :validate_name
|
@@ -14,6 +14,16 @@ module ConvenientService
|
|
14
14
|
class Format
|
15
15
|
include ConvenientService::Standard::Config
|
16
16
|
|
17
|
+
##
|
18
|
+
# IMPORTANT:
|
19
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
20
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
21
|
+
# - Do not use it in production yet.
|
22
|
+
#
|
23
|
+
middlewares :step, scope: :class do
|
24
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
25
|
+
end
|
26
|
+
|
17
27
|
attr_reader :path
|
18
28
|
|
19
29
|
step :validate_path,
|
@@ -8,6 +8,16 @@ module ConvenientService
|
|
8
8
|
class MergeSections
|
9
9
|
include ConvenientService::Standard::Config
|
10
10
|
|
11
|
+
##
|
12
|
+
# IMPORTANT:
|
13
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
14
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
15
|
+
# - Do not use it in production yet.
|
16
|
+
#
|
17
|
+
middlewares :step, scope: :class do
|
18
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
19
|
+
end
|
20
|
+
|
11
21
|
attr_reader :header, :body
|
12
22
|
|
13
23
|
step :validate_header,
|
@@ -40,6 +40,16 @@ module ConvenientService
|
|
40
40
|
|
41
41
|
include ConvenientService::Standard::Config
|
42
42
|
|
43
|
+
##
|
44
|
+
# IMPORTANT:
|
45
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
46
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
47
|
+
# - Do not use it in production yet.
|
48
|
+
#
|
49
|
+
middlewares :step, scope: :class do
|
50
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
51
|
+
end
|
52
|
+
|
43
53
|
attr_reader :content
|
44
54
|
|
45
55
|
step :validate_content
|
@@ -8,6 +8,16 @@ module ConvenientService
|
|
8
8
|
class ReadFileContent
|
9
9
|
include ConvenientService::Standard::Config
|
10
10
|
|
11
|
+
##
|
12
|
+
# IMPORTANT:
|
13
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
14
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
15
|
+
# - Do not use it in production yet.
|
16
|
+
#
|
17
|
+
middlewares :step, scope: :class do
|
18
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
19
|
+
end
|
20
|
+
|
11
21
|
attr_reader :path
|
12
22
|
|
13
23
|
step :validate_path
|
@@ -8,6 +8,16 @@ module ConvenientService
|
|
8
8
|
class ReplaceFileContent
|
9
9
|
include ConvenientService::Standard::Config
|
10
10
|
|
11
|
+
##
|
12
|
+
# IMPORTANT:
|
13
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
14
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
15
|
+
# - Do not use it in production yet.
|
16
|
+
#
|
17
|
+
middlewares :step, scope: :class do
|
18
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
19
|
+
end
|
20
|
+
|
11
21
|
attr_reader :path, :content
|
12
22
|
|
13
23
|
step :validate_path, in: :path
|
data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_body.rb
CHANGED
@@ -8,6 +8,16 @@ module ConvenientService
|
|
8
8
|
class ExtractParamsFromBody
|
9
9
|
include ConvenientService::Standard::Config
|
10
10
|
|
11
|
+
##
|
12
|
+
# IMPORTANT:
|
13
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
14
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
15
|
+
# - Do not use it in production yet.
|
16
|
+
#
|
17
|
+
middlewares :step, scope: :class do
|
18
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
19
|
+
end
|
20
|
+
|
11
21
|
attr_reader :request
|
12
22
|
|
13
23
|
step :parse_body, in: :request, out: :body
|
data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_path.rb
CHANGED
@@ -8,6 +8,16 @@ module ConvenientService
|
|
8
8
|
class ExtractParamsFromPath
|
9
9
|
include ConvenientService::Standard::Config
|
10
10
|
|
11
|
+
##
|
12
|
+
# IMPORTANT:
|
13
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
14
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
15
|
+
# - Do not use it in production yet.
|
16
|
+
#
|
17
|
+
middlewares :step, scope: :class do
|
18
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
19
|
+
end
|
20
|
+
|
11
21
|
attr_reader :request, :pattern
|
12
22
|
|
13
23
|
step :parse_path, in: :request, out: :path
|
data/lib/convenient_service/examples/standard/request_params/services/validate_casted_params.rb
CHANGED
@@ -8,6 +8,16 @@ module ConvenientService
|
|
8
8
|
class ValidateCastedParams
|
9
9
|
include ConvenientService::Standard::Config
|
10
10
|
|
11
|
+
##
|
12
|
+
# IMPORTANT:
|
13
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
14
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
15
|
+
# - Do not use it in production yet.
|
16
|
+
#
|
17
|
+
middlewares :step, scope: :class do
|
18
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
19
|
+
end
|
20
|
+
|
11
21
|
attr_reader \
|
12
22
|
:original_id,
|
13
23
|
:original_format,
|
data/lib/convenient_service/examples/standard/request_params/services/validate_uncasted_params.rb
CHANGED
@@ -8,6 +8,16 @@ module ConvenientService
|
|
8
8
|
class ValidateUncastedParams
|
9
9
|
include ConvenientService::Standard::Config
|
10
10
|
|
11
|
+
##
|
12
|
+
# IMPORTANT:
|
13
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
14
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
15
|
+
# - Do not use it in production yet.
|
16
|
+
#
|
17
|
+
middlewares :step, scope: :class do
|
18
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
19
|
+
end
|
20
|
+
|
11
21
|
attr_reader :id, :format, :title, :description, :tags, :sources
|
12
22
|
|
13
23
|
step :validate_id, in: :id
|
@@ -22,6 +22,16 @@ module ConvenientService
|
|
22
22
|
::Class.new do
|
23
23
|
include ::ConvenientService::Configs::Standard
|
24
24
|
|
25
|
+
##
|
26
|
+
# IMPORTANT:
|
27
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
28
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
29
|
+
# - Do not use it in production yet.
|
30
|
+
#
|
31
|
+
middlewares :step, scope: :class do
|
32
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
33
|
+
end
|
34
|
+
|
25
35
|
def result
|
26
36
|
success
|
27
37
|
end
|
@@ -60,6 +70,16 @@ module ConvenientService
|
|
60
70
|
::Class.new do
|
61
71
|
include ::ConvenientService::Configs::Standard
|
62
72
|
|
73
|
+
##
|
74
|
+
# IMPORTANT:
|
75
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
76
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
77
|
+
# - Do not use it in production yet.
|
78
|
+
#
|
79
|
+
middlewares :step, scope: :class do
|
80
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
81
|
+
end
|
82
|
+
|
63
83
|
def result
|
64
84
|
failure(data)
|
65
85
|
end
|
@@ -88,6 +108,16 @@ module ConvenientService
|
|
88
108
|
::Class.new do
|
89
109
|
include ::ConvenientService::Configs::Standard
|
90
110
|
|
111
|
+
##
|
112
|
+
# IMPORTANT:
|
113
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
114
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
115
|
+
# - Do not use it in production yet.
|
116
|
+
#
|
117
|
+
middlewares :step, scope: :class do
|
118
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
119
|
+
end
|
120
|
+
|
91
121
|
def result
|
92
122
|
error(message)
|
93
123
|
end
|
@@ -165,6 +195,16 @@ module ConvenientService
|
|
165
195
|
klass.class_exec(steps: steps) do
|
166
196
|
include ::ConvenientService::Configs::Standard
|
167
197
|
|
198
|
+
##
|
199
|
+
# IMPORTANT:
|
200
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
201
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
202
|
+
# - Do not use it in production yet.
|
203
|
+
#
|
204
|
+
middlewares :step, scope: :class do
|
205
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
206
|
+
end
|
207
|
+
|
168
208
|
steps.each do |step_name|
|
169
209
|
case step_name
|
170
210
|
when ::Class
|
@@ -8,13 +8,23 @@ module ConvenientService
|
|
8
8
|
module Step
|
9
9
|
module Instance
|
10
10
|
##
|
11
|
-
# @return [ConvenientService::Service::Plugins::
|
11
|
+
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
|
12
12
|
#
|
13
13
|
def create_step_instance
|
14
14
|
service_class =
|
15
15
|
::Class.new do
|
16
16
|
include ::ConvenientService::Configs::Standard
|
17
17
|
|
18
|
+
##
|
19
|
+
# IMPORTANT:
|
20
|
+
# - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`.
|
21
|
+
# - It will be reenabled after the introduction of thread-safety specs.
|
22
|
+
# - Do not use it in production yet.
|
23
|
+
#
|
24
|
+
middlewares :step, scope: :class do
|
25
|
+
use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware
|
26
|
+
end
|
27
|
+
|
18
28
|
step :result
|
19
29
|
|
20
30
|
def result
|
@@ -16,7 +16,7 @@ module ConvenientService
|
|
16
16
|
# @internal
|
17
17
|
# specify {
|
18
18
|
# expect { method_class.cast(other, **options) }
|
19
|
-
# .to delegate_to(ConvenientService::Service::Plugins::
|
19
|
+
# .to delegate_to(ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Commands::CastMethod, :call)
|
20
20
|
# .with_arguments(other: other, options: options)
|
21
21
|
# .and_return_its_value
|
22
22
|
# }
|
@@ -24,7 +24,7 @@ module ConvenientService
|
|
24
24
|
# { method_class.cast(other, **options) }
|
25
25
|
# # => block_expectation
|
26
26
|
#
|
27
|
-
# ConvenientService::Service::Plugins::
|
27
|
+
# ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Commands::CastMethod
|
28
28
|
# # => object
|
29
29
|
#
|
30
30
|
# :call
|
data/lib/convenient_service/rspec/matchers/custom/results/base/commands/find_result_method_step.rb
CHANGED
@@ -31,7 +31,7 @@ module ConvenientService
|
|
31
31
|
end
|
32
32
|
|
33
33
|
##
|
34
|
-
# @return [ConvenientService::Service::Plugins::
|
34
|
+
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method]
|
35
35
|
#
|
36
36
|
def call
|
37
37
|
return nil unless result.step
|
@@ -42,7 +42,7 @@ module ConvenientService
|
|
42
42
|
private
|
43
43
|
|
44
44
|
##
|
45
|
-
# @param input [ConvenientService::Service::Plugins::
|
45
|
+
# @param input [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method]
|
46
46
|
# @return [Boolean]
|
47
47
|
#
|
48
48
|
def match_service_class?(input)
|
@@ -50,7 +50,7 @@ module ConvenientService
|
|
50
50
|
end
|
51
51
|
|
52
52
|
##
|
53
|
-
# @param input [ConvenientService::Service::Plugins::
|
53
|
+
# @param input [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method]
|
54
54
|
# @return [Boolean]
|
55
55
|
#
|
56
56
|
def match_key?(input)
|
@@ -58,7 +58,7 @@ module ConvenientService
|
|
58
58
|
end
|
59
59
|
|
60
60
|
##
|
61
|
-
# @param input [ConvenientService::Service::Plugins::
|
61
|
+
# @param input [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method]
|
62
62
|
# @return [Boolean]
|
63
63
|
#
|
64
64
|
def match_value?(input)
|
@@ -23,7 +23,7 @@ module ConvenientService
|
|
23
23
|
end
|
24
24
|
|
25
25
|
##
|
26
|
-
# @return [ConvenientService::Service::Plugins::
|
26
|
+
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method]
|
27
27
|
#
|
28
28
|
def call
|
29
29
|
return nil unless result.step
|
@@ -34,7 +34,7 @@ module ConvenientService
|
|
34
34
|
private
|
35
35
|
|
36
36
|
##
|
37
|
-
# @param input [ConvenientService::Service::Plugins::
|
37
|
+
# @param input [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method]
|
38
38
|
# @return [Boolean]
|
39
39
|
#
|
40
40
|
def match_service_class?(input)
|
@@ -42,7 +42,7 @@ module ConvenientService
|
|
42
42
|
end
|
43
43
|
|
44
44
|
##
|
45
|
-
# @param input [ConvenientService::Service::Plugins::
|
45
|
+
# @param input [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method]
|
46
46
|
# @return [Boolean]
|
47
47
|
#
|
48
48
|
def match_key?(input)
|
@@ -50,7 +50,7 @@ module ConvenientService
|
|
50
50
|
end
|
51
51
|
|
52
52
|
##
|
53
|
-
# @param input [ConvenientService::Service::Plugins::
|
53
|
+
# @param input [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method]
|
54
54
|
# @return [Boolean]
|
55
55
|
#
|
56
56
|
def match_value?(input)
|
@@ -4,6 +4,6 @@ module ConvenientService
|
|
4
4
|
module Plugins
|
5
5
|
Result = ::ConvenientService::Service::Plugins::HasResult::Entities::Result::Plugins
|
6
6
|
Service = ::ConvenientService::Service::Plugins
|
7
|
-
Step = ::ConvenientService::Service::Plugins::
|
7
|
+
Step = ::ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Plugins
|
8
8
|
end
|
9
9
|
end
|
@@ -3,9 +3,14 @@
|
|
3
3
|
module ConvenientService
|
4
4
|
module Service
|
5
5
|
module Plugins
|
6
|
-
module
|
6
|
+
module CanHaveMethodSteps
|
7
7
|
class Middleware < Core::MethodChainMiddleware
|
8
8
|
##
|
9
|
+
# @param args [Array]
|
10
|
+
# @param kwargs [Hash]
|
11
|
+
# @param block [Proc, nil]
|
12
|
+
# @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
|
13
|
+
#
|
9
14
|
# @internal
|
10
15
|
# NOTE: It is okish to assign to next method arguments here,
|
11
16
|
# since splat for `args` and double splat for `kwargs`
|
@@ -14,16 +19,21 @@ module ConvenientService
|
|
14
19
|
#
|
15
20
|
def next(*args, **kwargs, &block)
|
16
21
|
return chain.next(*args, **kwargs, &block) unless args.first.instance_of?(::Symbol)
|
22
|
+
return chain.next(*args, **kwargs, &block) if args.first == :result
|
17
23
|
|
18
24
|
kwargs[:in] = Utils::Array.wrap(kwargs[:in]) + [{method_name: raw(args.first)}, {organizer: :itself}]
|
19
25
|
|
20
|
-
args[0] =
|
26
|
+
args[0] = Services::RunMethodInOrganizer
|
21
27
|
|
22
28
|
chain.next(*args, **kwargs, &block)
|
23
29
|
end
|
24
30
|
|
25
31
|
private
|
26
32
|
|
33
|
+
##
|
34
|
+
# @param object [Object] Can be any type.
|
35
|
+
# @return [ConvenientService::Support::RawValue]
|
36
|
+
#
|
27
37
|
def raw(object)
|
28
38
|
Support::RawValue.wrap(object)
|
29
39
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ConvenientService
|
4
|
+
module Service
|
5
|
+
module Plugins
|
6
|
+
module CanHaveResultStep
|
7
|
+
class Middleware < Core::MethodChainMiddleware
|
8
|
+
##
|
9
|
+
# @param args [Array]
|
10
|
+
# @param kwargs [Hash]
|
11
|
+
# @param block [Proc, nil]
|
12
|
+
# @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
|
13
|
+
#
|
14
|
+
# @internal
|
15
|
+
# NOTE: It is okish to assign to next method arguments here,
|
16
|
+
# since splat for `args` and double splat for `kwargs`
|
17
|
+
# always create new arrays and hashes respectively.
|
18
|
+
# https://github.com/ruby/spec/blob/c7ed8478a031d0df346d222495f4b4bbb298523b/language/keyword_arguments_spec.rb#L100
|
19
|
+
#
|
20
|
+
def next(*args, **kwargs, &block)
|
21
|
+
return chain.next(*args, **kwargs, &block) if args.first != :result
|
22
|
+
|
23
|
+
kwargs[:in] = Utils::Array.wrap(kwargs[:in]) + [{method_name: raw(:result)}, {organizer: :itself}]
|
24
|
+
|
25
|
+
args[0] = Services::RunOwnMethodInOrganizer
|
26
|
+
|
27
|
+
chain.next(*args, **kwargs, &block)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
##
|
33
|
+
# @param object [Object] Can be any type.
|
34
|
+
# @return [ConvenientService::Support::RawValue]
|
35
|
+
#
|
36
|
+
def raw(object)
|
37
|
+
Support::RawValue.wrap(object)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -3,13 +3,13 @@
|
|
3
3
|
module ConvenientService
|
4
4
|
module Service
|
5
5
|
module Plugins
|
6
|
-
module
|
6
|
+
module CanHaveSteps
|
7
7
|
module Concern
|
8
8
|
include Support::Concern
|
9
9
|
|
10
10
|
instance_methods do
|
11
11
|
##
|
12
|
-
# @return [Array<ConvenientService::Service::Plugins::
|
12
|
+
# @return [Array<ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step>]
|
13
13
|
#
|
14
14
|
def steps
|
15
15
|
internals.cache.fetch(:steps) do
|
@@ -25,10 +25,10 @@ module ConvenientService
|
|
25
25
|
# Returns `nil` when index is out of range.
|
26
26
|
#
|
27
27
|
# @param index [Integer]
|
28
|
-
# @return [ConvenientService::Service::Plugins::
|
28
|
+
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
|
29
29
|
#
|
30
30
|
# @note This method was initially designed as a hook (callback trigger).
|
31
|
-
# @see ConvenientService::Service::Plugins::
|
31
|
+
# @see ConvenientService::Service::Plugins::CanHaveSteps::Middleware#next
|
32
32
|
#
|
33
33
|
def step(index)
|
34
34
|
steps[index]
|
@@ -41,7 +41,7 @@ module ConvenientService
|
|
41
41
|
#
|
42
42
|
# @param args [Array]
|
43
43
|
# @param kwargs [Hash]
|
44
|
-
# @return [ConvenientService::Service::Plugins::
|
44
|
+
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
|
45
45
|
#
|
46
46
|
def step(*args, **kwargs)
|
47
47
|
step_class.new(*args, **kwargs.merge(container: self))
|
@@ -69,21 +69,21 @@ module ConvenientService
|
|
69
69
|
|
70
70
|
##
|
71
71
|
# @param method_name [String, Symbol]
|
72
|
-
# @return [ConvenientService::Service::Plugins::
|
72
|
+
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Entities::Values::Reassignment]
|
73
73
|
#
|
74
74
|
def reassign(method_name)
|
75
75
|
Entities::Method::Entities::Values::Reassignment.new(method_name)
|
76
76
|
end
|
77
77
|
|
78
78
|
##
|
79
|
-
# @return [ConvenientService::Service::Plugins::
|
79
|
+
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::StepCollection]
|
80
80
|
#
|
81
81
|
def steps
|
82
82
|
@steps ||= Entities::StepCollection.new
|
83
83
|
end
|
84
84
|
|
85
85
|
##
|
86
|
-
# @return [ConvenientService::Service::Plugins::
|
86
|
+
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
|
87
87
|
#
|
88
88
|
def step_class
|
89
89
|
@step_class ||= Commands::CreateStepClass.call(service_class: self)
|