convenient_service 0.26.0 → 0.27.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.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/lib/convenient_service/aliases.rb +0 -11
  3. data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_active_model_attribute_assignment/concern.rb +1 -1
  4. data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_dry_initializer/concern.rb +1 -1
  5. data/lib/convenient_service/common/plugins/caches_constructor_arguments/concern.rb +1 -1
  6. data/lib/convenient_service/common/plugins/can_be_copied/concern.rb +1 -1
  7. data/lib/convenient_service/common/plugins/can_have_callbacks/concern.rb +1 -1
  8. data/lib/convenient_service/common/plugins/can_have_callbacks/entities/type/concern.rb +1 -1
  9. data/lib/convenient_service/common/plugins/can_have_not_passed_arguments/concern.rb +1 -1
  10. data/lib/convenient_service/common/plugins/can_utilize_finite_loop/concern.rb +1 -1
  11. data/lib/convenient_service/common/plugins/has_attributes/using_active_model_attributes/concern.rb +1 -1
  12. data/lib/convenient_service/common/plugins/has_constructor/concern.rb +1 -1
  13. data/lib/convenient_service/common/plugins/has_constructor_without_initialize/concern.rb +1 -1
  14. data/lib/convenient_service/common/plugins/has_instance_proxy/concern.rb +1 -1
  15. data/lib/convenient_service/common/plugins/has_internals/concern.rb +1 -1
  16. data/lib/convenient_service/common/plugins/has_internals/entities/internals/concern.rb +1 -1
  17. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/has_cache/concern.rb +1 -1
  18. data/lib/convenient_service/common/plugins/has_j_send_result_duck_short_syntax/concern.rb +1 -1
  19. data/lib/convenient_service/common/plugins/has_memoization/using_memo_wise/concern.rb +1 -1
  20. data/lib/convenient_service/config/entities/option.rb +11 -9
  21. data/lib/convenient_service/config/entities/option_collection.rb +8 -4
  22. data/lib/convenient_service/core/aliases.rb +50 -0
  23. data/lib/convenient_service/core/entities/config/commands/build_entity_from_config_option.rb +63 -0
  24. data/lib/convenient_service/core/entities/config/commands.rb +1 -0
  25. data/lib/convenient_service/core/entities/config/entities/concerns/usual.rb +50 -0
  26. data/lib/convenient_service/core/entities/config/entities/concerns.rb +2 -0
  27. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/concern/class_methods.rb +9 -0
  28. data/lib/convenient_service/feature/plugins/can_have_entries/concern.rb +1 -1
  29. data/lib/convenient_service/feature/plugins/can_have_rspec_stubbed_entries/concern.rb +1 -1
  30. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/concern.rb +1 -1
  31. data/lib/convenient_service/feature/plugins/has_amazing_print_inspect/concern.rb +1 -1
  32. data/lib/convenient_service/feature/plugins/has_awesome_print_inspect/concern.rb +1 -1
  33. data/lib/convenient_service/feature/plugins/has_inspect/concern.rb +1 -1
  34. data/lib/convenient_service/service/configs/standard/v1.rb +2 -0
  35. data/lib/convenient_service/service/configs/standard.rb +11 -6
  36. data/lib/convenient_service/service/plugins/can_be_called/concern.rb +1 -1
  37. data/lib/convenient_service/service/plugins/can_have_connected_steps/concern.rb +1 -1
  38. data/lib/convenient_service/service/plugins/can_have_fallbacks/concern.rb +1 -1
  39. data/lib/convenient_service/service/plugins/can_have_handled_exceptions/concern.rb +1 -1
  40. data/lib/convenient_service/service/plugins/can_have_inline_services/concern.rb +1 -1
  41. data/lib/convenient_service/service/plugins/can_have_inline_services/entities/proxy.rb +5 -0
  42. data/lib/convenient_service/service/plugins/can_have_recalculations/concern.rb +1 -1
  43. data/lib/convenient_service/service/plugins/can_have_rspec_stubbed_results/concern.rb +1 -1
  44. data/lib/convenient_service/service/plugins/can_have_sequential_steps/concern.rb +1 -1
  45. data/lib/convenient_service/service/plugins/can_have_service_aware_enumerables/concern.rb +1 -10
  46. data/lib/convenient_service/service/plugins/can_have_steps/concern.rb +1 -1
  47. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/concern.rb +1 -1
  48. data/lib/convenient_service/service/plugins/can_have_steps/entities/service/concern.rb +1 -1
  49. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands/cast_params.rb +0 -8
  50. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands/extract_params.rb +1 -2
  51. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern/instance_methods.rb +0 -11
  52. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern.rb +1 -1
  53. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_evaluated/concern.rb +1 -1
  54. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_evaluated/middleware.rb +43 -0
  55. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_evaluated.rb +1 -0
  56. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/concern.rb +1 -1
  57. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_service_step/concern.rb +1 -1
  58. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_strict/concern.rb +35 -0
  59. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_strict/middleware.rb +40 -0
  60. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_strict.rb +9 -0
  61. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_used_in_service_aware_enumerables/concern.rb +1 -1
  62. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/concern.rb +1 -1
  63. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_amazing_print_inspect/concern.rb +1 -1
  64. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_awesome_print_inspect/concern.rb +1 -1
  65. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_inspect/concern.rb +1 -1
  66. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/concern.rb +1 -1
  67. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/middleware.rb +0 -2
  68. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins.rb +1 -0
  69. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/structs/params.rb +2 -2
  70. data/lib/convenient_service/service/plugins/can_have_stubbed_results/concern.rb +1 -1
  71. data/lib/convenient_service/service/plugins/can_not_be_inherited/concern.rb +1 -1
  72. data/lib/convenient_service/service/plugins/has_amazing_print_inspect/concern.rb +1 -1
  73. data/lib/convenient_service/service/plugins/has_awesome_print_inspect/concern.rb +1 -1
  74. data/lib/convenient_service/service/plugins/has_inspect/concern.rb +1 -1
  75. data/lib/convenient_service/service/plugins/has_j_send_result/concern.rb +1 -1
  76. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/concern.rb +1 -1
  77. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_called/concern.rb +1 -1
  78. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_exception/concern.rb +1 -1
  79. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_fallback/concern.rb +1 -1
  80. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_handled_exception/concern.rb +1 -1
  81. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_unhandled_exception/concern.rb +1 -1
  82. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_own_result/concern.rb +1 -1
  83. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_strict/concern.rb +1 -1
  84. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_stubbed_result/concern.rb +1 -1
  85. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_used_in_service_aware_enumerables/concern.rb +1 -1
  86. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status/concern.rb +1 -1
  87. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_fallbacks/concern.rb +1 -1
  88. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_parent_result/concern.rb +1 -1
  89. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_step/concern.rb +1 -1
  90. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_amazing_print_inspect/concern.rb +1 -1
  91. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_awesome_print_inspect/concern.rb +1 -1
  92. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_inspect/concern.rb +1 -1
  93. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/concern.rb +1 -1
  94. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/concern.rb +1 -1
  95. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/plugins/has_amazing_print_inspect/concern.rb +1 -1
  96. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/plugins/has_awesome_print_inspect/concern.rb +1 -1
  97. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/plugins/has_inspect/concern.rb +1 -1
  98. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern.rb +1 -1
  99. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/has_amazing_print_inspect/concern.rb +1 -1
  100. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/has_awesome_print_inspect/concern.rb +1 -1
  101. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/has_inspect/concern.rb +1 -1
  102. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern.rb +1 -1
  103. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/plugins/has_amazing_print_inspect/concern.rb +1 -1
  104. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/plugins/has_awesome_print_inspect/concern.rb +1 -1
  105. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/plugins/has_inspect/concern.rb +1 -1
  106. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern.rb +1 -1
  107. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/plugins/can_be_checked/concern.rb +1 -1
  108. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/plugins/has_amazing_print_inspect/concern.rb +1 -1
  109. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/plugins/has_awesome_print_inspect/concern.rb +1 -1
  110. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/plugins/has_inspect/concern.rb +1 -1
  111. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_negated_result/concern.rb +1 -1
  112. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_pattern_matching_support/concern.rb +1 -1
  113. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects/concern.rb +1 -1
  114. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations/concern.rb +15 -3
  115. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations/middleware.rb +10 -2
  116. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations/no_op_concern.rb +116 -0
  117. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations.rb +1 -0
  118. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/concern.rb +19 -1
  119. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/middleware.rb +10 -2
  120. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/no_op_concern.rb +43 -0
  121. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation.rb +1 -0
  122. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/concern.rb +1 -1
  123. data/lib/convenient_service/service/plugins/has_j_send_result_status_check_short_syntax/concern.rb +1 -1
  124. data/lib/convenient_service/service/plugins/has_negated_j_send_result/concern.rb +1 -1
  125. data/lib/convenient_service/service/plugins/has_negated_result/concern.rb +1 -1
  126. data/lib/convenient_service/service/plugins/has_result/concern.rb +1 -1
  127. data/lib/convenient_service/version.rb +1 -1
  128. metadata +9 -1
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveConnectedSteps
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  class_methods do
16
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveFallbacks
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  instance_methods do
16
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveHandledExceptions
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  instance_methods do
16
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveInlineServices
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  instance_methods do
16
16
  ##
@@ -40,6 +40,11 @@ module ConvenientService
40
40
  ##
41
41
  # @return [Boolean]
42
42
  #
43
+ # @internal
44
+ # TODO: Define `def self.name` to avoid the following `validates` exception.
45
+ # ArgumentError:
46
+ # Class name cannot be blank. You need to supply a name argument when anonymous class given
47
+ #
43
48
  def define
44
49
  return false if self.defined?
45
50
 
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveRecalculations
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  instance_methods do
16
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveRSpecStubbedResults
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  class_methods do
16
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveSequentialSteps
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  class_methods do
16
16
  ##
@@ -10,16 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveServiceAwareEnumerables
12
12
  module Concern
13
- include Support::Concern
14
-
15
- ##
16
- # TODO: Implement in `CanBeUsedInServiceAwareEnumerables`.
17
- #
18
- # class_methods do
19
- # def to_service_aware_iteration_block_value
20
- # end
21
- # end
22
- ##
13
+ include ::ConvenientService::Concern
23
14
 
24
15
  instance_methods do
25
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveSteps
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  class_methods do
16
16
  ##
@@ -15,7 +15,7 @@ module ConvenientService
15
15
  module Entities
16
16
  class Method
17
17
  module Concern
18
- include Support::Concern
18
+ include ::ConvenientService::Concern
19
19
 
20
20
  included do |method_klass|
21
21
  method_klass.include Support::Castable
@@ -15,7 +15,7 @@ module ConvenientService
15
15
  module Entities
16
16
  class Service
17
17
  module Concern
18
- include Support::Concern
18
+ include ::ConvenientService::Concern
19
19
 
20
20
  included do |service_klass|
21
21
  service_klass.include Support::Castable
@@ -35,7 +35,6 @@ module ConvenientService
35
35
  action: action,
36
36
  inputs: inputs,
37
37
  outputs: outputs,
38
- strict: strict,
39
38
  index: index,
40
39
  container: container,
41
40
  organizer: organizer,
@@ -64,13 +63,6 @@ module ConvenientService
64
63
  @outputs ||= cast_outputs
65
64
  end
66
65
 
67
- ##
68
- # @return [Boolean]
69
- #
70
- def strict
71
- Utils.memoize_including_falsy_values(self, :@strict) { Utils.to_bool(original_params.strict) }
72
- end
73
-
74
66
  ##
75
67
  # @return [Integer]
76
68
  #
@@ -43,11 +43,10 @@ module ConvenientService
43
43
  action: args.first,
44
44
  inputs: Utils::Array.wrap(kwargs[:in]),
45
45
  outputs: Utils::Array.wrap(kwargs[:out]),
46
- strict: kwargs[:strict],
47
46
  index: kwargs[:index],
48
47
  container: kwargs[:container],
49
48
  organizer: kwargs[:organizer],
50
- extra_kwargs: Utils::Hash.except(kwargs, [:in, :out, :strict, :index, :container, :organizer])
49
+ extra_kwargs: Utils::Hash.except(kwargs, [:in, :out, :index, :container, :organizer])
51
50
  )
52
51
  end
53
52
  end
@@ -182,8 +182,6 @@ module ConvenientService
182
182
 
183
183
  save_outputs_in_organizer!
184
184
 
185
- mark_as_evaluated!
186
-
187
185
  original_result
188
186
  end
189
187
 
@@ -234,15 +232,6 @@ module ConvenientService
234
232
  Utils.to_bool(organizer(raise_when_missing: false))
235
233
  end
236
234
 
237
- ##
238
- # @api public
239
- #
240
- # @return [Boolean]
241
- #
242
- def strict?
243
- params.strict
244
- end
245
-
246
235
  ##
247
236
  # @api private
248
237
  #
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Entities
15
15
  class Step
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  included do |step_class|
20
20
  step_class.include InstanceMethods
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeEvaluated
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # @author Marian Kostyk <mariankostyk13895@gmail.com>
5
+ # @license LGPLv3 <https://www.gnu.org/licenses/lgpl-3.0.html>
6
+ ##
7
+
8
+ module ConvenientService
9
+ module Service
10
+ module Plugins
11
+ module CanHaveSteps
12
+ module Entities
13
+ class Step
14
+ module Plugins
15
+ module CanBeEvaluated
16
+ class Middleware < MethodChainMiddleware
17
+ intended_for :result, entity: :step
18
+
19
+ ##
20
+ # @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
21
+ #
22
+ alias_method :step, :entity
23
+
24
+ ##
25
+ # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
26
+ # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Plugins::CanBeMethodStep::Exceptions::StepIsNotMethodStep, ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Plugins::CanBeMethodStep::Exceptions::MethodForStepIsNotDefined]
27
+ #
28
+ def next(...)
29
+ result = chain.next(...)
30
+
31
+ step.mark_as_evaluated!
32
+
33
+ result
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -6,3 +6,4 @@
6
6
  ##
7
7
 
8
8
  require_relative "can_be_evaluated/concern"
9
+ require_relative "can_be_evaluated/middleware"
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeMethodStep
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeServiceStep
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # @author Marian Kostyk <mariankostyk13895@gmail.com>
5
+ # @license LGPLv3 <https://www.gnu.org/licenses/lgpl-3.0.html>
6
+ ##
7
+
8
+ module ConvenientService
9
+ module Service
10
+ module Plugins
11
+ module CanHaveSteps
12
+ module Entities
13
+ class Step
14
+ module Plugins
15
+ module CanBeStrict
16
+ module Concern
17
+ include ::ConvenientService::Concern
18
+
19
+ instance_methods do
20
+ ##
21
+ # @return [Bool]
22
+ #
23
+ def strict?
24
+ params.extra_kwargs[:strict] == true
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # @author Marian Kostyk <mariankostyk13895@gmail.com>
5
+ # @license LGPLv3 <https://www.gnu.org/licenses/lgpl-3.0.html>
6
+ ##
7
+
8
+ module ConvenientService
9
+ module Service
10
+ module Plugins
11
+ module CanHaveSteps
12
+ module Entities
13
+ class Step
14
+ module Plugins
15
+ module CanBeStrict
16
+ class Middleware < MethodChainMiddleware
17
+ intended_for :result, entity: :step
18
+
19
+ ##
20
+ # @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
21
+ #
22
+ alias_method :step, :entity
23
+
24
+ ##
25
+ # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
26
+ #
27
+ def next(...)
28
+ result = chain.next(...)
29
+
30
+ step.strict? ? result.strict : result
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # @author Marian Kostyk <mariankostyk13895@gmail.com>
5
+ # @license LGPLv3 <https://www.gnu.org/licenses/lgpl-3.0.html>
6
+ ##
7
+
8
+ require_relative "can_be_strict/concern"
9
+ require_relative "can_be_strict/middleware"
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeUsedInServiceAwareEnumerables
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanHaveFallbacks
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module HasAmazingPrintInspect
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module HasAwesomePrintInspect
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module HasInspect
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module HasResult
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -35,8 +35,6 @@ module ConvenientService
35
35
  def next(...)
36
36
  result = chain.next(...)
37
37
 
38
- result = result.strict if step.strict?
39
-
40
38
  result.copy(
41
39
  overrides: {
42
40
  kwargs: {
@@ -12,6 +12,7 @@ require_relative "plugins/can_be_service_step"
12
12
  require_relative "plugins/can_be_method_step"
13
13
  require_relative "plugins/can_be_used_in_service_aware_enumerables"
14
14
  require_relative "plugins/can_have_fallbacks"
15
+ require_relative "plugins/can_be_strict"
15
16
  require_relative "plugins/can_have_parent_result"
16
17
  require_relative "plugins/has_inspect"
17
18
  require_relative "plugins/raises_on_not_result_return_value"
@@ -12,9 +12,9 @@ module ConvenientService
12
12
  module Entities
13
13
  class Step
14
14
  module Structs
15
- Params = ::Struct.new(:action, :inputs, :outputs, :strict, :index, :container, :organizer, :extra_kwargs, keyword_init: true) do
15
+ Params = ::Struct.new(:action, :inputs, :outputs, :index, :container, :organizer, :extra_kwargs, keyword_init: true) do
16
16
  def to_callback_arguments
17
- Support::Arguments.new(action, in: inputs, out: outputs, strict: strict, index: index, **extra_kwargs)
17
+ Support::Arguments.new(action, in: inputs, out: outputs, index: index, **extra_kwargs)
18
18
  end
19
19
  end
20
20
  end
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanHaveStubbedResults
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  included do |service_class|
16
16
  service_class.extend ClassMethods
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module CanNotBeInherited
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  class_methods do
16
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module HasAmazingPrintInspect
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  instance_methods do
16
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module HasAwesomePrintInspect
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  instance_methods do
16
16
  ##
@@ -10,7 +10,7 @@ module ConvenientService
10
10
  module Plugins
11
11
  module HasInspect
12
12
  module Concern
13
- include Support::Concern
13
+ include ::ConvenientService::Concern
14
14
 
15
15
  instance_methods do
16
16
  ##
@@ -13,7 +13,7 @@ module ConvenientService
13
13
  module Plugins
14
14
  module HasJSendResult
15
15
  module Concern
16
- include Support::Concern
16
+ include ::ConvenientService::Concern
17
17
 
18
18
  included do |service_class|
19
19
  service_class.include InstanceMethods
@@ -16,7 +16,7 @@ module ConvenientService
16
16
  # @since 1.0.0
17
17
  #
18
18
  module Concern
19
- include Support::Concern
19
+ include ::ConvenientService::Concern
20
20
 
21
21
  instance_methods do
22
22
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeCalled
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeFromException
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeFromFallback
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeFromHandledException
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeFromUnhandledException
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeOwnResult
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeStrict
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeStubbedResult
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanBeUsedInServiceAwareEnumerables
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##
@@ -14,7 +14,7 @@ module ConvenientService
14
14
  module Plugins
15
15
  module CanHaveCheckedStatus
16
16
  module Concern
17
- include Support::Concern
17
+ include ::ConvenientService::Concern
18
18
 
19
19
  instance_methods do
20
20
  ##