convenient_service 0.25.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.
- checksums.yaml +4 -4
- data/lib/convenient_service/aliases.rb +0 -11
- data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_active_model_attribute_assignment/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_dry_initializer/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/caches_constructor_arguments/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/can_be_copied/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/can_have_callbacks/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/can_have_callbacks/entities/type/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/can_have_not_passed_arguments/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/can_utilize_finite_loop/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_attributes/using_active_model_attributes/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_constructor/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_constructor_without_initialize/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_instance_proxy/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_internals/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_internals/entities/internals/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/has_cache/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_j_send_result_duck_short_syntax/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/has_memoization/using_memo_wise/concern.rb +1 -1
- data/lib/convenient_service/common/plugins/tries_to_convert_result_duck_to_result/middleware.rb +54 -0
- data/lib/convenient_service/common/plugins/tries_to_convert_result_duck_to_result.rb +8 -0
- data/lib/convenient_service/common/plugins.rb +1 -0
- data/lib/convenient_service/config/entities/option.rb +11 -9
- data/lib/convenient_service/config/entities/option_collection.rb +8 -4
- data/lib/convenient_service/core/aliases.rb +50 -0
- data/lib/convenient_service/core/entities/config/commands/build_entity_from_config_option.rb +63 -0
- data/lib/convenient_service/core/entities/config/commands.rb +1 -0
- data/lib/convenient_service/core/entities/config/entities/concerns/usual.rb +50 -0
- data/lib/convenient_service/core/entities/config/entities/concerns.rb +2 -0
- data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/concern/class_methods.rb +9 -0
- data/lib/convenient_service/feature/plugins/can_have_entries/concern.rb +1 -1
- data/lib/convenient_service/feature/plugins/can_have_rspec_stubbed_entries/concern.rb +1 -1
- data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/concern.rb +1 -1
- data/lib/convenient_service/feature/plugins/has_amazing_print_inspect/concern.rb +1 -1
- data/lib/convenient_service/feature/plugins/has_awesome_print_inspect/concern.rb +1 -1
- data/lib/convenient_service/feature/plugins/has_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/configs/standard/v1.rb +2 -0
- data/lib/convenient_service/service/configs/standard.rb +21 -9
- data/lib/convenient_service/service/plugins/can_be_called/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_connected_steps/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_fallbacks/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_handled_exceptions/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_inline_services/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_inline_services/entities/proxy.rb +5 -0
- data/lib/convenient_service/service/plugins/can_have_recalculations/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_rspec_stubbed_results/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_sequential_steps/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_service_aware_enumerables/concern.rb +1 -10
- data/lib/convenient_service/service/plugins/can_have_steps/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/method/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/service/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands/cast_params.rb +0 -8
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands/extract_params.rb +1 -2
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern/instance_methods.rb +0 -11
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_evaluated/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_evaluated/middleware.rb +43 -0
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_evaluated.rb +1 -0
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_service_step/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_strict/concern.rb +35 -0
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_strict/middleware.rb +40 -0
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_strict.rb +9 -0
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_used_in_service_aware_enumerables/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_amazing_print_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_awesome_print_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/middleware.rb +0 -2
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins.rb +1 -0
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/structs/params.rb +2 -2
- data/lib/convenient_service/service/plugins/can_have_stubbed_results/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/can_not_be_inherited/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_amazing_print_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_awesome_print_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_called/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_exception/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_fallback/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_handled_exception/concern.rb +6 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_unhandled_exception/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_own_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_strict/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_stubbed_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_used_in_service_aware_enumerables/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_fallbacks/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_parent_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_step/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_amazing_print_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_awesome_print_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_inspect/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/concern/instance_methods.rb +7 -0
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/concern.rb +1 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_negated_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_pattern_matching_support/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations/concern.rb +15 -3
- data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations/middleware.rb +10 -2
- data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations/no_op_concern.rb +116 -0
- data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations.rb +1 -0
- data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/concern.rb +19 -1
- data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/middleware.rb +10 -2
- data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/no_op_concern.rb +43 -0
- data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation.rb +1 -0
- data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_j_send_result_status_check_short_syntax/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_negated_j_send_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_negated_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/has_result/concern.rb +1 -1
- data/lib/convenient_service/service/plugins/raises_on_not_result_return_value/middleware.rb +7 -3
- data/lib/convenient_service/version.rb +1 -1
- metadata +12 -2
|
@@ -24,11 +24,13 @@ module ConvenientService
|
|
|
24
24
|
:fallbacks,
|
|
25
25
|
:rollbacks,
|
|
26
26
|
:fault_tolerance,
|
|
27
|
+
:strictness,
|
|
27
28
|
:inspect,
|
|
28
29
|
:recalculation,
|
|
29
30
|
:result_parents_trace,
|
|
30
31
|
:code_review_automation,
|
|
31
32
|
:short_syntax,
|
|
33
|
+
:duck_typing,
|
|
32
34
|
:type_safety,
|
|
33
35
|
:exception_services_trace,
|
|
34
36
|
:per_instance_caching,
|
|
@@ -53,11 +55,13 @@ module ConvenientService
|
|
|
53
55
|
:essential,
|
|
54
56
|
:callbacks,
|
|
55
57
|
:fallbacks,
|
|
58
|
+
:strictness,
|
|
56
59
|
:inspect,
|
|
57
60
|
:recalculation,
|
|
58
61
|
:result_parents_trace,
|
|
59
62
|
:code_review_automation,
|
|
60
63
|
:short_syntax,
|
|
64
|
+
:duck_typing,
|
|
61
65
|
:type_safety,
|
|
62
66
|
:exception_services_trace,
|
|
63
67
|
:per_instance_caching,
|
|
@@ -108,8 +112,8 @@ module ConvenientService
|
|
|
108
112
|
use ConvenientService::Plugins::Common::AssignsAttributesInConstructor::UsingActiveModelAttributeAssignment::Concern if options.enabled?(:active_model_attribute_assignment)
|
|
109
113
|
use ConvenientService::Plugins::Common::AssignsAttributesInConstructor::UsingDryInitializer::Concern if options.enabled?(:dry_initializer)
|
|
110
114
|
use ConvenientService::Plugins::Common::HasAttributes::UsingActiveModelAttributes::Concern if options.enabled?(:active_model_attributes)
|
|
111
|
-
use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingActiveModelValidations::Concern if options.enabled?(:active_model_validations)
|
|
112
|
-
use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingDryValidation::Concern if options.enabled?(:dry_validation)
|
|
115
|
+
use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingActiveModelValidations::Concern.from(options[:active_model_validations], :skip_validations) if options.enabled?(:active_model_validations)
|
|
116
|
+
use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingDryValidation::Concern.from(options[:dry_validation], :skip_validations) if options.enabled?(:dry_validation)
|
|
113
117
|
use ConvenientService::Plugins::Common::HasMemoization::UsingMemoWise::Concern if options.enabled?(:memo_wise)
|
|
114
118
|
use ConvenientService::Plugins::Common::CanHaveNotPassedArguments::Concern if options.enabled?(:not_passed_arguments)
|
|
115
119
|
use ConvenientService::Plugins::Common::CanUtilizeFiniteLoop::Concern if options.enabled?(:finite_loop)
|
|
@@ -134,8 +138,9 @@ module ConvenientService
|
|
|
134
138
|
use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
|
|
135
139
|
use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance)
|
|
136
140
|
use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
|
|
137
|
-
use ConvenientService::Plugins::
|
|
138
|
-
use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::
|
|
141
|
+
use ConvenientService::Plugins::Common::TriesToConvertResultDuckToResult::Middleware if options.enabled?(:duck_typing)
|
|
142
|
+
use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingActiveModelValidations::Middleware.from(options[:active_model_validations], :status, :skip_validations) if options.enabled?(:active_model_validations)
|
|
143
|
+
use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingDryValidation::Middleware.from(options[:dry_validation], :status, :skip_validations) if options.enabled?(:dry_validation)
|
|
139
144
|
use ConvenientService::Plugins::Service::CanHaveConnectedSteps::Middleware if options.enabled?(:essential)
|
|
140
145
|
end
|
|
141
146
|
|
|
@@ -146,6 +151,7 @@ module ConvenientService
|
|
|
146
151
|
use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
|
|
147
152
|
use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance)
|
|
148
153
|
use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
|
|
154
|
+
use ConvenientService::Plugins::Common::TriesToConvertResultDuckToResult::Middleware if options.enabled?(:duck_typing)
|
|
149
155
|
end
|
|
150
156
|
|
|
151
157
|
middlewares :regular_result do
|
|
@@ -160,27 +166,30 @@ module ConvenientService
|
|
|
160
166
|
use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
|
|
161
167
|
use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
|
|
162
168
|
use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
|
|
163
|
-
# use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO:
|
|
169
|
+
# use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO: Dedicated `rescue`?
|
|
164
170
|
use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
|
|
165
171
|
use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: :failure) if options.enabled?(:fallbacks)
|
|
172
|
+
use ConvenientService::Plugins::Common::TriesToConvertResultDuckToResult::Middleware if options.enabled?(:duck_typing)
|
|
166
173
|
end
|
|
167
174
|
|
|
168
175
|
middlewares :fallback_error_result do
|
|
169
176
|
use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
|
|
170
177
|
use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
|
|
171
178
|
use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
|
|
172
|
-
# use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO:
|
|
179
|
+
# use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO: Dedicated `rescue`?
|
|
173
180
|
use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
|
|
174
181
|
use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: :error) if options.enabled?(:fallbacks)
|
|
182
|
+
use ConvenientService::Plugins::Common::TriesToConvertResultDuckToResult::Middleware if options.enabled?(:duck_typing)
|
|
175
183
|
end
|
|
176
184
|
|
|
177
185
|
middlewares :fallback_result do
|
|
178
186
|
use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
|
|
179
187
|
use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
|
|
180
188
|
use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
|
|
181
|
-
# use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO:
|
|
189
|
+
# use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO: Dedicated `rescue`?
|
|
182
190
|
use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
|
|
183
191
|
use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: nil) if options.enabled?(:fallbacks)
|
|
192
|
+
use ConvenientService::Plugins::Common::TriesToConvertResultDuckToResult::Middleware if options.enabled?(:duck_typing)
|
|
184
193
|
end
|
|
185
194
|
|
|
186
195
|
middlewares :success do
|
|
@@ -220,7 +229,7 @@ module ConvenientService
|
|
|
220
229
|
use ConvenientService::Plugins::Result::HasJSendStatusAndAttributes::Concern if options.enabled?(:essential)
|
|
221
230
|
use ConvenientService::Plugins::Result::CanHaveStep::Concern if options.enabled?(:essential)
|
|
222
231
|
use ConvenientService::Plugins::Result::CanBeCalled::Concern if options.enabled?(:essential)
|
|
223
|
-
use ConvenientService::Plugins::Result::CanBeStrict::Concern if options.enabled?(:
|
|
232
|
+
use ConvenientService::Plugins::Result::CanBeStrict::Concern if options.enabled?(:strictness)
|
|
224
233
|
use ConvenientService::Plugins::Result::CanBeUsedInServiceAwareEnumerables::Concern if options.enabled?(:essential)
|
|
225
234
|
use ConvenientService::Plugins::Result::HasNegatedResult::Concern if options.enabled?(:essential)
|
|
226
235
|
use ConvenientService::Plugins::Result::HasPatternMatchingSupport::Concern if options.enabled?(:essential)
|
|
@@ -339,12 +348,13 @@ module ConvenientService
|
|
|
339
348
|
concerns do
|
|
340
349
|
use ConvenientService::Plugins::Common::HasInternals::Concern if options.enabled?(:essential)
|
|
341
350
|
use ConvenientService::Plugins::Step::HasResult::Concern if options.enabled?(:essential)
|
|
342
|
-
use ConvenientService::Plugins::Step::CanBeEvaluated::Concern if options.enabled?(:essential)
|
|
343
351
|
use ConvenientService::Plugins::Step::CanBeServiceStep::Concern if options.enabled?(:essential)
|
|
344
352
|
use ConvenientService::Plugins::Step::CanBeMethodStep::Concern if options.enabled?(:essential)
|
|
345
353
|
use ConvenientService::Plugins::Step::CanBeUsedInServiceAwareEnumerables::Concern if options.enabled?(:essential)
|
|
346
354
|
use ConvenientService::Plugins::Common::CanHaveCallbacks::Concern if options.enabled?(:callbacks)
|
|
347
355
|
use ConvenientService::Plugins::Step::CanHaveFallbacks::Concern if options.enabled?(:fallbacks)
|
|
356
|
+
use ConvenientService::Plugins::Step::CanBeStrict::Concern if options.enabled?(:strictness)
|
|
357
|
+
use ConvenientService::Plugins::Step::CanBeEvaluated::Concern if options.any_enabled?(:rollbacks, :exception_services_trace)
|
|
348
358
|
use ConvenientService::Plugins::Step::HasInspect::Concern if options.enabled?(:inspect)
|
|
349
359
|
use ConvenientService::Plugins::Step::HasAwesomePrintInspect::Concern if options.enabled?(:awesome_print_inspect)
|
|
350
360
|
use ConvenientService::Plugins::Step::HasAmazingPrintInspect::Concern if options.enabled?(:amazing_print_inspect)
|
|
@@ -353,6 +363,8 @@ module ConvenientService
|
|
|
353
363
|
|
|
354
364
|
middlewares :result do
|
|
355
365
|
use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
|
|
366
|
+
use ConvenientService::Plugins::Step::CanBeStrict::Middleware if options.enabled?(:strictness)
|
|
367
|
+
use ConvenientService::Plugins::Step::CanBeEvaluated::Middleware if options.any_enabled?(:rollbacks, :exception_services_trace)
|
|
356
368
|
use ConvenientService::Plugins::Step::HasResult::Middleware if options.enabled?(:essential)
|
|
357
369
|
use ConvenientService::Plugins::Step::CanHaveParentResult::Middleware if options.enabled?(:result_parents_trace)
|
|
358
370
|
use ConvenientService::Plugins::Step::CanHaveFallbacks::Middleware.with(fallback_true_status: :failure) if options.enabled?(:fallbacks)
|
|
@@ -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,16 +10,7 @@ module ConvenientService
|
|
|
10
10
|
module Plugins
|
|
11
11
|
module CanHaveServiceAwareEnumerables
|
|
12
12
|
module Concern
|
|
13
|
-
include
|
|
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
|
##
|
data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands/cast_params.rb
CHANGED
|
@@ -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
|
#
|
data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands/extract_params.rb
CHANGED
|
@@ -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, :
|
|
49
|
+
extra_kwargs: Utils::Hash.except(kwargs, [:in, :out, :index, :container, :organizer])
|
|
51
50
|
)
|
|
52
51
|
end
|
|
53
52
|
end
|
data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern/instance_methods.rb
CHANGED
|
@@ -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
|
#
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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, :
|
|
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,
|
|
17
|
+
Support::Arguments.new(action, in: inputs, out: outputs, index: index, **extra_kwargs)
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
end
|