convenient_service 0.14.0 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/contributing.md +15 -0
- data/.github/workflows/cd.yml +5 -4
- data/.github/workflows/ci.yml +5 -5
- data/.gitignore +15 -1
- data/.ruby-version +1 -1
- data/.tool-versions +1 -1
- data/.vscode/CacheItsValue.code-snippets +1 -1
- data/.yardopts +4 -1
- data/CHANGELOG.md +29 -0
- data/COMM-LICENSE.txt +99 -0
- data/LICENSE.txt +7 -19
- data/README.md +1 -1
- data/ROADMAP.md +14 -7
- data/Taskfile.yml +14 -2
- data/docs/.gitkeep +0 -0
- data/docs/api/.gitkeep +0 -0
- data/lib/convenient_service/dependencies.rb +2 -2
- data/lib/convenient_service/examples/dry/gemfile.rb +4 -2
- data/lib/convenient_service/examples/dry/v1/gemfile.rb +4 -2
- data/lib/convenient_service/examples/rails/gemfile.rb +4 -2
- data/lib/convenient_service/examples/rails/v1/gemfile.rb +4 -2
- data/lib/convenient_service/examples/standard/cowsay.rb +4 -2
- data/lib/convenient_service/examples/standard/date_time.rb +4 -2
- data/lib/convenient_service/examples/standard/factorial.rb +4 -2
- data/lib/convenient_service/examples/standard/gemfile.rb +4 -2
- data/lib/convenient_service/examples/standard/request_params.rb +4 -2
- data/lib/convenient_service/examples/standard/v1/cowsay.rb +1 -1
- data/lib/convenient_service/examples/standard/v1/date_time.rb +1 -1
- data/lib/convenient_service/examples/standard/v1/factorial.rb +1 -1
- data/lib/convenient_service/examples/standard/v1/gemfile.rb +1 -1
- data/lib/convenient_service/examples/standard/v1/request_params.rb +1 -1
- data/lib/convenient_service/feature/configs/aliases.rb +9 -0
- data/lib/convenient_service/feature/configs/standard.rb +22 -0
- data/lib/convenient_service/feature/configs.rb +5 -0
- data/lib/convenient_service/feature/plugins/aliases.rb +7 -0
- data/lib/convenient_service/feature/plugins/can_have_entries/commands/define_entry.rb +63 -0
- data/lib/convenient_service/feature/plugins/can_have_entries/commands.rb +3 -0
- data/lib/convenient_service/feature/plugins/can_have_entries/concern.rb +24 -0
- data/lib/convenient_service/feature/plugins/can_have_entries/exceptions.rb +35 -0
- data/lib/convenient_service/feature/plugins/can_have_entries.rb +5 -0
- data/lib/convenient_service/feature/plugins.rb +5 -0
- data/lib/convenient_service/feature.rb +2 -9
- data/lib/convenient_service/rspec/helpers/{custom → classes}/stub_service/constants.rb +1 -1
- data/lib/convenient_service/rspec/helpers/{custom → classes}/stub_service/entities/result_spec.rb +8 -8
- data/lib/convenient_service/rspec/helpers/{custom → classes}/stub_service/entities/stubbed_service.rb +6 -6
- data/lib/convenient_service/rspec/helpers/{custom → classes}/stub_service.rb +1 -1
- data/lib/convenient_service/rspec/helpers/{custom → classes}/wrap_method/entities/wrapped_method.rb +6 -6
- data/lib/convenient_service/rspec/helpers/{custom → classes}/wrap_method/exceptions.rb +1 -1
- data/lib/convenient_service/rspec/helpers/{custom → classes}/wrap_method.rb +2 -2
- data/lib/convenient_service/rspec/helpers/classes.rb +4 -0
- data/lib/convenient_service/rspec/helpers/ignoring_exception.rb +1 -1
- data/lib/convenient_service/rspec/helpers/stub_service.rb +5 -5
- data/lib/convenient_service/rspec/helpers/wrap_method.rb +1 -1
- data/lib/convenient_service/rspec/helpers.rb +4 -6
- data/lib/convenient_service/rspec/matchers/call_chain_next.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/call_chain_next.rb +8 -8
- data/lib/convenient_service/rspec/matchers/{custom → classes}/export.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/constants.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/chain.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_expected_code_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_expected_data_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_expected_message_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_expected_parts.rb +3 -3
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_expected_service_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_expected_status_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_expected_step_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_got_parts.rb +3 -3
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_got_service_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands/generate_got_step_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/error/commands/generate_got_jsend_attributes_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/error.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/failure/commands/generate_got_jsend_attributes_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/failure.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/null.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/success/commands/generate_got_jsend_attributes_part.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/success.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers.rb +3 -3
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands/validate_result.rb +4 -4
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands/validate_result_code.rb +5 -5
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands/validate_result_data.rb +5 -5
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands/validate_result_message.rb +5 -5
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands/validate_result_service.rb +5 -5
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands/validate_result_status.rb +5 -5
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands/validate_result_step.rb +6 -6
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands/validate_result_type.rb +5 -5
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator.rb +3 -3
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/exceptions.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base.rb +15 -15
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/be_error.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/be_failure.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/be_not_error.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/be_not_failure.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/be_not_success.rb +1 -1
- data/lib/convenient_service/rspec/matchers/{custom → classes}/results/be_success.rb +1 -1
- data/lib/convenient_service/rspec/matchers/classes.rb +5 -0
- data/lib/convenient_service/rspec/matchers/delegate_to.rb +1 -1
- data/lib/convenient_service/rspec/matchers/export.rb +1 -1
- data/lib/convenient_service/rspec/matchers/include_module.rb +1 -1
- data/lib/convenient_service/rspec/matchers/results/be_error.rb +1 -1
- data/lib/convenient_service/rspec/matchers/results/be_failure.rb +1 -1
- data/lib/convenient_service/rspec/matchers/results/be_not_error.rb +1 -1
- data/lib/convenient_service/rspec/matchers/results/be_not_failure.rb +1 -1
- data/lib/convenient_service/rspec/matchers/results/be_not_success.rb +1 -1
- data/lib/convenient_service/rspec/matchers/results/be_result.rb +6 -6
- data/lib/convenient_service/rspec/matchers/results/be_success.rb +1 -1
- data/lib/convenient_service/rspec/matchers.rb +6 -28
- data/lib/convenient_service/rspec/{helpers/custom → primitive_helpers/classes}/ignoring_exception/exceptions.rb +2 -2
- data/lib/convenient_service/rspec/{helpers/custom → primitive_helpers/classes}/ignoring_exception.rb +3 -3
- data/lib/convenient_service/rspec/{helpers/custom → primitive_helpers/classes}/in_threads.rb +2 -2
- data/lib/convenient_service/rspec/primitive_helpers/classes.rb +4 -0
- data/lib/convenient_service/rspec/primitive_helpers/ignoring_exception.rb +13 -0
- data/lib/convenient_service/rspec/{helpers → primitive_helpers}/in_threads.rb +2 -2
- data/lib/convenient_service/rspec/primitive_helpers.rb +19 -0
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/be_descendant_of.rb +2 -2
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/be_direct_descendant_of.rb +2 -2
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/cache_its_value.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/be_descendant_of.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/be_direct_descendant_of.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/cache_its_value.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/commands/generate_printable_method.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments/commands/apply_stub_to_track_delegations.rb +4 -4
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments/commands/generate_printable_arguments.rb +4 -4
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/base.rb +5 -5
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/return_its_value.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/with_any_arguments.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/with_concrete_arguments.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/without_arguments.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/values/base.rb +4 -4
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/values/with_calling_original.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/values/without_calling_original.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings_collection/exceptions.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings_collection.rb +13 -13
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/delegation.rb +3 -3
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher.rb +13 -13
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to.rb +13 -13
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/extend_module.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/have_abstract_method.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/have_alias_method.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/have_attr_accessor.rb +4 -4
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/have_attr_reader.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/have_attr_writer.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/include_module.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/prepend_module.rb +2 -2
- data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/singleton_prepend_module.rb +2 -2
- data/lib/convenient_service/rspec/primitive_matchers/classes.rb +15 -0
- data/lib/convenient_service/rspec/primitive_matchers/delegate_to.rb +13 -0
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/extend_module.rb +2 -2
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/have_abstract_method.rb +2 -2
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/have_alias_method.rb +2 -2
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/have_attr_accessor.rb +2 -2
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/have_attr_reader.rb +2 -2
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/have_attr_writer.rb +2 -2
- data/lib/convenient_service/rspec/primitive_matchers/include_module.rb +13 -0
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/prepend_module.rb +2 -2
- data/lib/convenient_service/rspec/{matchers → primitive_matchers}/singleton_prepend_module.rb +2 -2
- data/lib/convenient_service/rspec/primitive_matchers.rb +41 -0
- data/lib/convenient_service/rspec.rb +3 -0
- data/lib/convenient_service/{configs → service/configs}/aliases.rb +1 -1
- data/lib/convenient_service/{configs → service/configs}/awesome_print_inspect/aliases.rb +1 -1
- data/lib/convenient_service/service/configs/awesome_print_inspect.rb +61 -0
- data/lib/convenient_service/service/configs/minimal.rb +261 -0
- data/lib/convenient_service/{configs → service/configs}/standard/aliases.rb +1 -1
- data/lib/convenient_service/service/configs/standard/v1.rb +185 -0
- data/lib/convenient_service/service/configs/standard.rb +238 -0
- data/lib/convenient_service/service/plugins/can_have_steps/concern.rb +9 -3
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/raises_on_not_result_return_value/exceptions.rb +32 -0
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/raises_on_not_result_return_value/middleware.rb +33 -0
- data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/raises_on_not_result_return_value.rb +4 -0
- 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_collection.rb +16 -0
- data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/concern/instance_methods.rb +24 -0
- data/lib/convenient_service/service.rb +1 -0
- data/lib/convenient_service/support/dependency_container/commands.rb +0 -1
- data/lib/convenient_service/support/dependency_container.rb +0 -1
- data/lib/convenient_service/version.rb +1 -1
- data/lib/convenient_service.rb +0 -1
- data/yard/yard-convenient_service_concern.rb +45 -0
- metadata +143 -120
- data/lib/convenient_service/configs/awesome_print_inspect.rb +0 -59
- data/lib/convenient_service/configs/minimal.rb +0 -257
- data/lib/convenient_service/configs/standard/v1.rb +0 -183
- data/lib/convenient_service/configs/standard.rb +0 -234
- data/lib/convenient_service/rspec/helpers/custom.rb +0 -6
- data/lib/convenient_service/rspec/matchers/custom.rb +0 -18
- data/lib/convenient_service/support/dependency_container/commands/define_entry.rb +0 -49
- data/lib/convenient_service/support/dependency_container/entry.rb +0 -22
- /data/lib/convenient_service/rspec/helpers/{custom → classes}/stub_service/entities.rb +0 -0
- /data/lib/convenient_service/rspec/helpers/{custom → classes}/wrap_method/entities.rb +0 -0
- /data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/base/commands.rb +0 -0
- /data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/error/commands.rb +0 -0
- /data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/failure/commands.rb +0 -0
- /data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/printers/success/commands.rb +0 -0
- /data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities/validator/commands.rb +0 -0
- /data/lib/convenient_service/rspec/matchers/{custom → classes}/results/base/entities.rb +0 -0
- /data/lib/convenient_service/rspec/matchers/{custom → classes}/results.rb +0 -0
- /data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/commands.rb +0 -0
- /data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments/commands.rb +0 -0
- /data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities/chainings.rb +0 -0
- /data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities/matcher/entities.rb +0 -0
- /data/lib/convenient_service/rspec/{matchers/custom → primitive_matchers/classes}/delegate_to/entities.rb +0 -0
- /data/lib/convenient_service/{configs.rb → service/configs.rb} +0 -0
@@ -9,6 +9,14 @@ module ConvenientService
|
|
9
9
|
|
10
10
|
instance_methods do
|
11
11
|
##
|
12
|
+
# @api public
|
13
|
+
#
|
14
|
+
# @note May be useful for debugging purposes.
|
15
|
+
# @see https://marian13.github.io/convenient_service_docs/guides/how_to_debug_services_via_callbacks
|
16
|
+
#
|
17
|
+
# @note `steps` are frozen.
|
18
|
+
# @see https://marian13.github.io/convenient_service_docs/faq#is-it-possible-to-modify-the-step-collection-from-a-callback
|
19
|
+
#
|
12
20
|
# @return [Array<ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step>]
|
13
21
|
#
|
14
22
|
# @internal
|
@@ -20,6 +28,7 @@ module ConvenientService
|
|
20
28
|
.steps
|
21
29
|
.tap(&:commit!)
|
22
30
|
.map { |step| step.copy(overrides: {kwargs: {organizer: self}}) }
|
31
|
+
.freeze
|
23
32
|
end
|
24
33
|
end
|
25
34
|
|
@@ -52,9 +61,6 @@ module ConvenientService
|
|
52
61
|
end
|
53
62
|
|
54
63
|
##
|
55
|
-
# @param value [Object] Can be any type.
|
56
|
-
# @return [ConvenientService::Support::RawValue]
|
57
|
-
#
|
58
64
|
# Allows to pass a value to `in` method without its intermediate processing.
|
59
65
|
# @see https://marian13.github.io/convenient_service_docs/basics/step_to_result_translation_table
|
60
66
|
#
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ConvenientService
|
4
|
+
module Service
|
5
|
+
module Plugins
|
6
|
+
module CanHaveSteps
|
7
|
+
module Entities
|
8
|
+
class Step
|
9
|
+
module Plugins
|
10
|
+
module RaisesOnNotResultReturnValue
|
11
|
+
module Exceptions
|
12
|
+
class ReturnValueNotKindOfResult < ::ConvenientService::Exception
|
13
|
+
def initialize(step:, result:)
|
14
|
+
message = <<~TEXT
|
15
|
+
Return value of step `#{step.printable_service}` is NOT a `Result`.
|
16
|
+
It is `#{result.class}`.
|
17
|
+
|
18
|
+
Did you forget to call `success`, `failure`, or `error`?
|
19
|
+
TEXT
|
20
|
+
|
21
|
+
super(message)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ConvenientService
|
4
|
+
module Service
|
5
|
+
module Plugins
|
6
|
+
module CanHaveSteps
|
7
|
+
module Entities
|
8
|
+
class Step
|
9
|
+
module Plugins
|
10
|
+
module RaisesOnNotResultReturnValue
|
11
|
+
class Middleware < MethodChainMiddleware
|
12
|
+
include Support::DependencyContainer::Import
|
13
|
+
|
14
|
+
import :"commands.is_result?", from: ::ConvenientService::Service::Plugins::HasJSendResult::Container
|
15
|
+
|
16
|
+
intended_for any_method, entity: :step
|
17
|
+
|
18
|
+
def next(...)
|
19
|
+
original_result = chain.next(...)
|
20
|
+
|
21
|
+
return original_result if commands.is_result?(original_result)
|
22
|
+
|
23
|
+
raise Exceptions::ReturnValueNotKindOfResult.new(step: entity, result: original_result)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -6,5 +6,6 @@ require_relative "plugins/can_be_result_step"
|
|
6
6
|
require_relative "plugins/can_have_fallbacks"
|
7
7
|
require_relative "plugins/can_have_parent_result"
|
8
8
|
require_relative "plugins/has_inspect"
|
9
|
+
require_relative "plugins/raises_on_not_result_return_value"
|
9
10
|
|
10
11
|
require_relative "plugins/aliases"
|
@@ -9,12 +9,16 @@ module ConvenientService
|
|
9
9
|
include ::Enumerable
|
10
10
|
|
11
11
|
##
|
12
|
+
# @api private
|
13
|
+
#
|
12
14
|
# @!attribute [r] steps
|
13
15
|
# @return [Array<ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step>]
|
14
16
|
#
|
15
17
|
attr_reader :steps
|
16
18
|
|
17
19
|
##
|
20
|
+
# @api private
|
21
|
+
#
|
18
22
|
# @param steps [Array<ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step>]
|
19
23
|
# @return [void]
|
20
24
|
#
|
@@ -23,6 +27,8 @@ module ConvenientService
|
|
23
27
|
end
|
24
28
|
|
25
29
|
##
|
30
|
+
# @api public
|
31
|
+
#
|
26
32
|
# @return [Boolean] true if called for the first time, false otherwise (similarly as Kernel#require).
|
27
33
|
#
|
28
34
|
# @see https://ruby-doc.org/core-3.1.2/Kernel.html#method-i-require
|
@@ -41,6 +47,8 @@ module ConvenientService
|
|
41
47
|
end
|
42
48
|
|
43
49
|
##
|
50
|
+
# @api public
|
51
|
+
#
|
44
52
|
# @return [Boolean]
|
45
53
|
#
|
46
54
|
def committed?
|
@@ -48,6 +56,8 @@ module ConvenientService
|
|
48
56
|
end
|
49
57
|
|
50
58
|
##
|
59
|
+
# @api public
|
60
|
+
#
|
51
61
|
# @param block [Proc, nil]
|
52
62
|
# @return [Array<ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step>, Enumerator]
|
53
63
|
#
|
@@ -56,6 +66,8 @@ module ConvenientService
|
|
56
66
|
end
|
57
67
|
|
58
68
|
##
|
69
|
+
# @api public
|
70
|
+
#
|
59
71
|
# Returns step by index.
|
60
72
|
#
|
61
73
|
# @param index [Integer]
|
@@ -69,6 +81,8 @@ module ConvenientService
|
|
69
81
|
end
|
70
82
|
|
71
83
|
##
|
84
|
+
# @api private
|
85
|
+
#
|
72
86
|
# @param step [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
|
73
87
|
# @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::StepCollection]
|
74
88
|
#
|
@@ -79,6 +93,8 @@ module ConvenientService
|
|
79
93
|
end
|
80
94
|
|
81
95
|
##
|
96
|
+
# @api public
|
97
|
+
#
|
82
98
|
# @param other [Object] Can be any type.
|
83
99
|
# @return [Boolean, nil]
|
84
100
|
#
|
@@ -69,6 +69,30 @@ module ConvenientService
|
|
69
69
|
# @see https://rspec.info/documentation/3.12/rspec-mocks/RSpec/Mocks/ArgumentMatchers.html
|
70
70
|
# @see https://github.com/rspec/rspec-mocks/blob/v3.12.3/lib/rspec/mocks/argument_matchers.rb#L282
|
71
71
|
#
|
72
|
+
# @example Just code does NOT work in case/when.
|
73
|
+
#
|
74
|
+
# case result.code # `result.code` returns fancy object
|
75
|
+
# when :full_queue
|
76
|
+
# notify_devops
|
77
|
+
# when :duplicated_job
|
78
|
+
# notify_devs
|
79
|
+
# else
|
80
|
+
# # ...
|
81
|
+
# end
|
82
|
+
#
|
83
|
+
# @example Code converted to symbol works in case/when.
|
84
|
+
#
|
85
|
+
# case result.code.to_sym
|
86
|
+
# when :full_queue
|
87
|
+
# notify_devops
|
88
|
+
# when :duplicated_job
|
89
|
+
# notify_devs
|
90
|
+
# else
|
91
|
+
# # ...
|
92
|
+
# end
|
93
|
+
#
|
94
|
+
# @see https://userdocs.convenientservice.org/faq#why-casewhen-does-not-work-with-just-result-codes
|
95
|
+
#
|
72
96
|
# @internal
|
73
97
|
# IMPORTANT: Must be kept in sync with `#==`.
|
74
98
|
# NOTE: Ruby does NOT have `!==` operator.
|
@@ -4,5 +4,4 @@ require_relative "commands/assert_valid_scope"
|
|
4
4
|
require_relative "commands/assert_valid_container"
|
5
5
|
require_relative "commands/assert_valid_method"
|
6
6
|
require_relative "commands/create_methods_module"
|
7
|
-
require_relative "commands/define_entry"
|
8
7
|
require_relative "commands/import_method"
|
@@ -5,7 +5,6 @@ require_relative "dependency_container/constants"
|
|
5
5
|
require_relative "dependency_container/entities"
|
6
6
|
require_relative "dependency_container/exceptions"
|
7
7
|
|
8
|
-
require_relative "dependency_container/entry"
|
9
8
|
require_relative "dependency_container/export"
|
10
9
|
require_relative "dependency_container/import"
|
11
10
|
|
data/lib/convenient_service.rb
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
require "yard"
|
2
|
+
|
3
|
+
##
|
4
|
+
# This file is used to allow parsing of yard docs inside `included`, `instance_methods` and `class_methods` blocks.
|
5
|
+
#
|
6
|
+
# It is loaded by the `RUBYLIB` ENV variable passed to `task docs:generate` in `Taskfile`.
|
7
|
+
#
|
8
|
+
# @see https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#plugin-support
|
9
|
+
# @see https://github.com/digitalcuisine/yard-activesupport-concern
|
10
|
+
# @see https://github.com/digitalcuisine/yard-activesupport-concern/blob/v0.0.1/lib/yard-activesupport-concern.rb
|
11
|
+
# @see https://stackoverflow.com/a/901109/12201472
|
12
|
+
#
|
13
|
+
module YARD
|
14
|
+
module Concern
|
15
|
+
class IncludedHandler < YARD::Handlers::Ruby::Base
|
16
|
+
handles method_call(:included)
|
17
|
+
|
18
|
+
namespace_only
|
19
|
+
|
20
|
+
def process
|
21
|
+
parse_block(statement.last.last, namespace: namespace, scope: :instance)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class InstanceMethodsHandler < YARD::Handlers::Ruby::Base
|
26
|
+
handles method_call(:instance_methods)
|
27
|
+
|
28
|
+
namespace_only
|
29
|
+
|
30
|
+
def process
|
31
|
+
parse_block(statement.last.last, namespace: namespace, scope: :instance)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class ClassMethodsHandler < YARD::Handlers::Ruby::Base
|
36
|
+
handles method_call(:class_methods)
|
37
|
+
|
38
|
+
namespace_only
|
39
|
+
|
40
|
+
def process
|
41
|
+
parse_block(statement.last.last, namespace: namespace, scope: :class)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|