convenient_service 0.19.1 → 0.21.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 (945) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +17 -4
  4. data/lib/convenient_service/aliases.rb +119 -1
  5. data/lib/convenient_service/commands.rb +8 -0
  6. data/lib/convenient_service/common/plugins/aliases.rb +74 -0
  7. data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_active_model_attribute_assignment/concern.rb +5 -0
  8. data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_active_model_attribute_assignment/middleware.rb +5 -0
  9. data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_active_model_attribute_assignment.rb +5 -0
  10. data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_dry_initializer/concern.rb +5 -0
  11. data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_dry_initializer.rb +5 -0
  12. data/lib/convenient_service/common/plugins/caches_constructor_arguments/concern.rb +5 -0
  13. data/lib/convenient_service/common/plugins/caches_constructor_arguments/middleware.rb +5 -0
  14. data/lib/convenient_service/common/plugins/caches_constructor_arguments.rb +5 -0
  15. data/lib/convenient_service/common/plugins/caches_return_value/middleware.rb +5 -0
  16. data/lib/convenient_service/common/plugins/caches_return_value.rb +5 -0
  17. data/lib/convenient_service/common/plugins/can_be_copied/concern.rb +5 -0
  18. data/lib/convenient_service/common/plugins/can_be_copied.rb +5 -0
  19. data/lib/convenient_service/common/plugins/can_have_callbacks/concern.rb +78 -0
  20. data/lib/convenient_service/common/plugins/{has_callbacks → can_have_callbacks}/entities/callback.rb +32 -27
  21. data/lib/convenient_service/common/plugins/{has_callbacks → can_have_callbacks}/entities/callback_collection.rb +13 -8
  22. data/lib/convenient_service/common/plugins/can_have_callbacks/entities/type/concern.rb +39 -0
  23. data/lib/convenient_service/common/plugins/can_have_callbacks/entities/type.rb +87 -0
  24. data/lib/convenient_service/common/plugins/can_have_callbacks/entities/type_collection.rb +54 -0
  25. data/lib/convenient_service/common/plugins/{has_callbacks → can_have_callbacks}/entities.rb +5 -0
  26. data/lib/convenient_service/common/plugins/{has_around_callbacks → can_have_callbacks}/exceptions.rb +14 -2
  27. data/lib/convenient_service/common/plugins/can_have_callbacks/middleware.rb +295 -0
  28. data/lib/convenient_service/common/plugins/can_have_callbacks.rb +11 -0
  29. data/lib/convenient_service/common/plugins/can_have_not_passed_arguments/concern.rb +56 -0
  30. data/lib/convenient_service/common/plugins/can_have_not_passed_arguments.rb +8 -0
  31. data/lib/convenient_service/common/plugins/can_have_user_provided_entity/commands/find_or_create_entity.rb +11 -0
  32. data/lib/convenient_service/common/plugins/can_have_user_provided_entity/commands.rb +5 -0
  33. data/lib/convenient_service/common/plugins/can_have_user_provided_entity/exceptions.rb +5 -0
  34. data/lib/convenient_service/common/plugins/can_have_user_provided_entity.rb +19 -1
  35. data/lib/convenient_service/common/plugins/can_utilize_finite_loop/concern.rb +5 -0
  36. data/lib/convenient_service/common/plugins/can_utilize_finite_loop/constants.rb +5 -0
  37. data/lib/convenient_service/common/plugins/can_utilize_finite_loop.rb +5 -0
  38. data/lib/convenient_service/common/plugins/cleans_exception_backtrace/middleware.rb +59 -0
  39. data/lib/convenient_service/common/plugins/cleans_exception_backtrace.rb +8 -0
  40. data/lib/convenient_service/common/plugins/ensures_negated_j_send_result/middleware.rb +5 -0
  41. data/lib/convenient_service/common/plugins/ensures_negated_j_send_result.rb +5 -0
  42. data/lib/convenient_service/common/plugins/has_attributes/using_active_model_attributes/concern.rb +5 -0
  43. data/lib/convenient_service/common/plugins/has_attributes/using_active_model_attributes/patches/active_model_attributes.rb +5 -0
  44. data/lib/convenient_service/common/plugins/has_attributes/using_active_model_attributes/patches.rb +5 -0
  45. data/lib/convenient_service/common/plugins/has_attributes/using_active_model_attributes.rb +5 -0
  46. data/lib/convenient_service/common/plugins/has_constructor/concern.rb +5 -0
  47. data/lib/convenient_service/common/plugins/has_constructor.rb +5 -0
  48. data/lib/convenient_service/common/plugins/has_constructor_without_initialize/concern.rb +5 -0
  49. data/lib/convenient_service/common/plugins/has_constructor_without_initialize.rb +5 -0
  50. data/lib/convenient_service/common/plugins/has_instance_proxy/commands/create_instance_proxy_class.rb +5 -0
  51. data/lib/convenient_service/common/plugins/has_instance_proxy/commands.rb +5 -0
  52. data/lib/convenient_service/common/plugins/has_instance_proxy/concern.rb +5 -0
  53. data/lib/convenient_service/common/plugins/has_instance_proxy/entities/instance_proxy.rb +19 -5
  54. data/lib/convenient_service/common/plugins/has_instance_proxy/entities.rb +5 -0
  55. data/lib/convenient_service/common/plugins/has_instance_proxy/middleware.rb +5 -0
  56. data/lib/convenient_service/common/plugins/has_instance_proxy.rb +5 -0
  57. data/lib/convenient_service/common/plugins/has_internals/commands.rb +5 -0
  58. data/lib/convenient_service/common/plugins/has_internals/concern.rb +6 -1
  59. data/lib/convenient_service/common/plugins/has_internals/entities/internals/concern.rb +5 -0
  60. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/aliases.rb +5 -0
  61. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/has_cache/concern.rb +7 -5
  62. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/has_cache.rb +5 -0
  63. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins.rb +5 -0
  64. data/lib/convenient_service/common/plugins/has_internals/entities/internals.rb +5 -0
  65. data/lib/convenient_service/common/plugins/has_internals/entities.rb +5 -0
  66. data/lib/convenient_service/common/plugins/has_internals.rb +5 -1
  67. data/lib/convenient_service/common/plugins/has_j_send_result_duck_short_syntax/concern.rb +5 -0
  68. data/lib/convenient_service/common/plugins/has_j_send_result_duck_short_syntax.rb +5 -0
  69. data/lib/convenient_service/common/plugins/has_memoization/using_memo_wise/concern.rb +24 -0
  70. data/lib/convenient_service/common/plugins/has_memoization/using_memo_wise.rb +8 -0
  71. data/lib/convenient_service/common/plugins.rb +9 -2
  72. data/lib/convenient_service/common.rb +19 -0
  73. data/lib/convenient_service/config/commands/normalize_options.rb +122 -0
  74. data/lib/convenient_service/config/commands.rb +8 -0
  75. data/lib/convenient_service/config/entities/option.rb +70 -0
  76. data/lib/convenient_service/config/entities/option_collection.rb +161 -0
  77. data/lib/convenient_service/config/entities.rb +9 -0
  78. data/lib/convenient_service/config/exceptions.rb +28 -0
  79. data/lib/convenient_service/config.rb +189 -0
  80. data/lib/convenient_service/core/aliases.rb +89 -0
  81. data/lib/convenient_service/core/concern/class_methods.rb +40 -15
  82. data/lib/convenient_service/core/concern/instance_methods.rb +6 -1
  83. data/lib/convenient_service/core/concern/singleton_class_methods.rb +32 -0
  84. data/lib/convenient_service/core/concern.rb +8 -7
  85. data/lib/convenient_service/core/constants.rb +5 -0
  86. data/lib/convenient_service/core/entities/config/commands/create_entity_class.rb +75 -0
  87. data/lib/convenient_service/core/entities/config/commands/find_entity_class.rb +54 -0
  88. data/lib/convenient_service/core/entities/config/commands/find_or_create_entity_class.rb +54 -0
  89. data/lib/convenient_service/core/entities/config/commands/track_method_missing_commit_trigger.rb +5 -0
  90. data/lib/convenient_service/core/entities/config/commands.rb +8 -0
  91. data/lib/convenient_service/core/entities/config/entities/concerns/entities/default_concern.rb +5 -0
  92. data/lib/convenient_service/core/entities/config/entities/concerns/entities/middleware/commands/cast_middleware.rb +5 -0
  93. data/lib/convenient_service/core/entities/config/entities/concerns/entities/middleware/commands.rb +5 -0
  94. data/lib/convenient_service/core/entities/config/entities/concerns/entities/middleware.rb +22 -0
  95. data/lib/convenient_service/core/entities/config/entities/concerns/entities/stack.rb +55 -32
  96. data/lib/convenient_service/core/entities/config/entities/concerns/entities.rb +5 -0
  97. data/lib/convenient_service/core/entities/config/entities/concerns.rb +10 -3
  98. data/lib/convenient_service/core/entities/config/entities/method_middlewares/commands/generate_stack_name.rb +7 -0
  99. data/lib/convenient_service/core/entities/config/entities/method_middlewares/commands.rb +5 -0
  100. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller/commands/cast_caller.rb +5 -0
  101. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller/commands/{define_method_middlewares_caller.rb → define_method_callers.rb} +48 -9
  102. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller/commands/undefine_method_callers.rb +86 -0
  103. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller/commands.rb +7 -1
  104. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller/concern/class_methods.rb +5 -0
  105. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller/concern/instance_methods.rb +17 -2
  106. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller/concern.rb +5 -0
  107. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller/constants.rb +5 -0
  108. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/caller.rb +5 -0
  109. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/commands/cast_container.rb +5 -0
  110. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/commands/resolve_methods_middlewares_callers.rb +5 -0
  111. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/commands.rb +5 -0
  112. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/concern/class_methods.rb +5 -0
  113. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/concern/instance_methods.rb +33 -1
  114. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/concern.rb +5 -0
  115. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container.rb +5 -0
  116. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/base.rb +5 -0
  117. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/observable/entities/event.rb +5 -0
  118. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/observable/entities.rb +5 -0
  119. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/observable.rb +5 -0
  120. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/with.rb +5 -0
  121. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators.rb +5 -0
  122. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/commands/create_observable_middleware.rb +12 -1
  123. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/commands.rb +5 -0
  124. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/concern/class_methods.rb +14 -14
  125. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/concern/instance_methods.rb +5 -0
  126. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/concern.rb +5 -0
  127. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/constants.rb +5 -0
  128. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/structs/intended_method.rb +5 -0
  129. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base/structs.rb +5 -0
  130. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/base.rb +5 -0
  131. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/commands/create_observable_middleware.rb +5 -0
  132. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/commands/normalize_env.rb +5 -0
  133. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/commands.rb +5 -0
  134. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/concern/class_methods.rb +5 -0
  135. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/concern/instance_methods.rb +5 -0
  136. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/concern.rb +5 -0
  137. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/entities/method_chain.rb +5 -0
  138. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/entities.rb +5 -0
  139. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain.rb +5 -0
  140. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/classic.rb +5 -0
  141. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares.rb +5 -0
  142. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/stack.rb +61 -43
  143. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities.rb +5 -0
  144. data/lib/convenient_service/core/entities/config/entities/method_middlewares.rb +32 -4
  145. data/lib/convenient_service/core/entities/config/entities.rb +5 -0
  146. data/lib/convenient_service/core/entities/config/exceptions.rb +5 -0
  147. data/lib/convenient_service/core/entities/config.rb +65 -8
  148. data/lib/convenient_service/core/entities.rb +5 -0
  149. data/lib/convenient_service/core.rb +80 -2
  150. data/lib/convenient_service/dependencies/built_in.rb +38 -7
  151. data/lib/convenient_service/dependencies/extractions/active_support_backtrace_cleaner/backtrace_cleaner.rb +30 -6
  152. data/lib/convenient_service/dependencies/extractions/active_support_backtrace_cleaner.rb +5 -0
  153. data/lib/convenient_service/dependencies/extractions/active_support_concern/concern.rb +60 -2
  154. data/lib/convenient_service/dependencies/extractions/active_support_concern.rb +7 -1
  155. data/lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/builder.rb +10 -0
  156. data/lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb +7 -2
  157. data/lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/runner.rb +8 -1
  158. data/lib/convenient_service/dependencies/extractions/ruby_middleware/middleware.rb +7 -0
  159. data/lib/convenient_service/dependencies/extractions/ruby_middleware.rb +5 -0
  160. data/lib/convenient_service/dependencies/extractions.rb +5 -0
  161. data/lib/convenient_service/dependencies/only_development_tools.rb +13 -0
  162. data/lib/convenient_service/dependencies/only_queries.rb +9 -6
  163. data/lib/convenient_service/dependencies/queries/gems/active_model.rb +5 -0
  164. data/lib/convenient_service/dependencies/queries/gems/logger.rb +5 -0
  165. data/lib/convenient_service/dependencies/queries/gems/minitest.rb +55 -0
  166. data/lib/convenient_service/dependencies/queries/gems/paint.rb +5 -0
  167. data/lib/convenient_service/dependencies/queries/gems/rspec.rb +7 -1
  168. data/lib/convenient_service/dependencies/queries/gems.rb +7 -0
  169. data/lib/convenient_service/dependencies/queries/ruby.rb +30 -14
  170. data/lib/convenient_service/dependencies/queries/version/null_version.rb +5 -0
  171. data/lib/convenient_service/dependencies/queries/version.rb +5 -0
  172. data/lib/convenient_service/dependencies/queries.rb +251 -76
  173. data/lib/convenient_service/dependencies.rb +11 -6
  174. data/lib/convenient_service/exception.rb +5 -0
  175. data/lib/convenient_service/extras/alias.rb +30 -0
  176. data/lib/convenient_service/extras/plugins/assigns_attributes_in_constructor/using_active_model_attribute_assignment.rb +16 -0
  177. data/lib/convenient_service/extras/plugins/assigns_attributes_in_constructor/using_dry_initializer.rb +16 -0
  178. data/lib/convenient_service/extras/plugins/has_attributes/using_active_model_attributes.rb +16 -0
  179. data/lib/convenient_service/extras/plugins/has_j_send_result_params_validations/using_active_model_validations.rb +16 -0
  180. data/lib/convenient_service/extras/plugins/has_j_send_result_params_validations/using_dry_validation.rb +16 -0
  181. data/lib/convenient_service/extras/plugins/has_memoization/using_memo_wise.rb +16 -0
  182. data/lib/convenient_service/extras/plugins/wraps_result_in_db_transaction/using_active_record_base_transaction.rb +16 -0
  183. data/lib/convenient_service/extras/rspec.rb +15 -0
  184. data/lib/convenient_service/extras/standard/config/options/active_model_validations.rb +15 -0
  185. data/lib/convenient_service/extras/standard/config/options/amazing_print_inspect.rb +15 -0
  186. data/lib/convenient_service/extras/standard/config/options/awesome_print_inspect.rb +15 -0
  187. data/lib/convenient_service/extras/standard/config/options/dry_initializer.rb +15 -0
  188. data/lib/convenient_service/extras/standard/config/options/memo_wise.rb +15 -0
  189. data/lib/convenient_service/feature/configs/aliases.rb +5 -0
  190. data/lib/convenient_service/feature/configs/standard.rb +111 -6
  191. data/lib/convenient_service/feature/configs.rb +5 -0
  192. data/lib/convenient_service/feature/core.rb +59 -0
  193. data/lib/convenient_service/feature/plugins/aliases.rb +34 -0
  194. data/lib/convenient_service/feature/plugins/can_have_entries/commands/define_entries.rb +5 -0
  195. data/lib/convenient_service/feature/plugins/can_have_entries/commands/define_entry.rb +9 -4
  196. data/lib/convenient_service/feature/plugins/can_have_entries/commands.rb +5 -0
  197. data/lib/convenient_service/feature/plugins/can_have_entries/concern.rb +13 -1
  198. data/lib/convenient_service/feature/plugins/can_have_entries/exceptions.rb +5 -0
  199. data/lib/convenient_service/feature/plugins/can_have_entries.rb +5 -0
  200. data/lib/convenient_service/feature/plugins/can_have_rspec_stubbed_entries/concern.rb +34 -0
  201. data/lib/convenient_service/feature/plugins/can_have_rspec_stubbed_entries.rb +8 -0
  202. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/commands/delete_feature_stubbed_entry.rb +71 -0
  203. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/commands/fetch_all_features_stubbed_entries_cache.rb +49 -0
  204. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/commands/fetch_feature_stubbed_entries_cache.rb +48 -0
  205. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/commands/set_feature_stubbed_entry.rb +79 -0
  206. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/commands.rb +12 -0
  207. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/concern.rb +74 -0
  208. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/entities/feature_stub.rb +123 -0
  209. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/entities/feature_unstub.rb +122 -0
  210. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/entities/value_mock.rb +118 -0
  211. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/entities/value_unmock.rb +88 -0
  212. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/entities.rb +12 -0
  213. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries/middleware.rb +48 -0
  214. data/lib/convenient_service/feature/plugins/can_have_stubbed_entries.rb +11 -0
  215. data/lib/convenient_service/feature/plugins/has_amazing_print_inspect/concern.rb +34 -0
  216. data/lib/convenient_service/feature/plugins/has_amazing_print_inspect.rb +8 -0
  217. data/lib/convenient_service/feature/plugins/has_awesome_print_inspect/concern.rb +34 -0
  218. data/lib/convenient_service/feature/plugins/has_awesome_print_inspect.rb +8 -0
  219. data/lib/convenient_service/feature/plugins/has_inspect/concern.rb +27 -0
  220. data/lib/convenient_service/feature/plugins/has_inspect.rb +8 -0
  221. data/lib/convenient_service/feature/plugins.rb +7 -0
  222. data/lib/convenient_service/feature.rb +22 -0
  223. data/lib/convenient_service/jruby.rb +45 -0
  224. data/lib/convenient_service/logger.rb +15 -11
  225. data/lib/convenient_service/rspec/{primitive_helpers → helpers}/classes/ignoring_exception/exceptions.rb +6 -1
  226. data/lib/convenient_service/rspec/{primitive_helpers → helpers}/classes/ignoring_exception.rb +7 -2
  227. data/lib/convenient_service/rspec/{primitive_helpers → helpers}/classes/in_threads.rb +6 -4
  228. data/lib/convenient_service/rspec/helpers/classes/wrap_method/entities/wrapped_method.rb +30 -18
  229. data/lib/convenient_service/rspec/helpers/classes/wrap_method/entities.rb +5 -0
  230. data/lib/convenient_service/rspec/helpers/classes/wrap_method/exceptions.rb +5 -0
  231. data/lib/convenient_service/rspec/helpers/classes/wrap_method.rb +5 -0
  232. data/lib/convenient_service/rspec/helpers/classes.rb +8 -1
  233. data/lib/convenient_service/rspec/helpers/ignoring_exception.rb +6 -1
  234. data/lib/convenient_service/rspec/{primitive_helpers → helpers}/in_threads.rb +6 -1
  235. data/lib/convenient_service/rspec/helpers/stub_entry.rb +47 -0
  236. data/lib/convenient_service/rspec/helpers/stub_service.rb +95 -6
  237. data/lib/convenient_service/rspec/helpers/wrap_method.rb +5 -0
  238. data/lib/convenient_service/rspec/helpers.rb +11 -0
  239. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/be_descendant_of.rb +6 -1
  240. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/be_direct_descendant_of.rb +6 -1
  241. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/cache_its_value.rb +6 -1
  242. data/lib/convenient_service/rspec/matchers/call_chain_next.rb +5 -0
  243. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/be_descendant_of.rb +6 -1
  244. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/be_direct_descendant_of.rb +6 -1
  245. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/cache_its_value.rb +8 -2
  246. data/lib/convenient_service/rspec/matchers/classes/call_chain_next.rb +5 -0
  247. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/commands/generate_printable_method.rb +10 -2
  248. data/lib/convenient_service/rspec/matchers/classes/delegate_to/commands.rb +8 -0
  249. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/delegation.rb +7 -2
  250. data/lib/convenient_service/rspec/matchers/classes/delegate_to/entities/inputs/jruby.rb +102 -0
  251. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/inputs.rb +10 -9
  252. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/outputs.rb +6 -1
  253. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matcher_collection.rb +12 -7
  254. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/arguments/commands/apply_stub_to_track_delegations.rb +8 -3
  255. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/arguments/commands/generate_printable_arguments.rb +9 -4
  256. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/arguments/commands.rb +5 -0
  257. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/arguments.rb +6 -1
  258. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/base.rb +11 -6
  259. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/return_custom_value.rb +6 -1
  260. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/return_delegation_value.rb +6 -1
  261. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/with_any_arguments.rb +6 -1
  262. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/with_concrete_arguments.rb +6 -1
  263. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers/without_arguments.rb +6 -1
  264. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities/sub_matchers.rb +5 -0
  265. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/entities.rb +5 -0
  266. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to/exceptions.rb +6 -1
  267. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/delegate_to.rb +24 -21
  268. data/lib/convenient_service/rspec/matchers/classes/export.rb +8 -10
  269. data/lib/convenient_service/rspec/matchers/classes/extend_module.rb +74 -0
  270. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/have_abstract_method.rb +6 -1
  271. data/lib/convenient_service/rspec/matchers/classes/have_alias_method/jruby.rb +81 -0
  272. data/lib/convenient_service/rspec/matchers/classes/have_alias_method.rb +102 -0
  273. data/lib/convenient_service/rspec/matchers/classes/have_attr_accessor.rb +89 -0
  274. data/lib/convenient_service/rspec/matchers/classes/have_attr_reader.rb +85 -0
  275. data/lib/convenient_service/rspec/matchers/classes/have_attr_writer.rb +93 -0
  276. data/lib/convenient_service/rspec/matchers/classes/include_config.rb +75 -0
  277. data/lib/convenient_service/rspec/matchers/classes/include_in_order.rb +88 -0
  278. data/lib/convenient_service/rspec/matchers/classes/include_module.rb +74 -0
  279. data/lib/convenient_service/rspec/matchers/classes/prepend_module.rb +74 -0
  280. data/lib/convenient_service/rspec/matchers/classes/results/base/constants.rb +5 -0
  281. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/chain.rb +88 -27
  282. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_expected_code_part.rb +5 -0
  283. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_expected_data_part.rb +5 -0
  284. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_expected_message_part.rb +5 -0
  285. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_expected_parts.rb +5 -0
  286. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_expected_service_part.rb +5 -0
  287. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_expected_status_part.rb +5 -0
  288. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_expected_step_part.rb +10 -1
  289. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_got_parts.rb +5 -0
  290. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_got_service_part.rb +5 -0
  291. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands/generate_got_step_part.rb +8 -1
  292. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base/commands.rb +5 -0
  293. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/base.rb +5 -0
  294. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/error/commands/generate_got_jsend_attributes_part.rb +6 -9
  295. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/error/commands.rb +5 -0
  296. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/error.rb +5 -0
  297. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/failure/commands/generate_got_jsend_attributes_part.rb +6 -9
  298. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/failure/commands.rb +5 -0
  299. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/failure.rb +5 -0
  300. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/null.rb +5 -0
  301. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/success/commands/generate_got_jsend_attributes_part.rb +6 -9
  302. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/success/commands.rb +5 -0
  303. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers/success.rb +5 -0
  304. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/printers.rb +5 -0
  305. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result.rb +13 -0
  306. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result_code.rb +6 -1
  307. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result_data.rb +6 -1
  308. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result_message.rb +6 -1
  309. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result_original_service.rb +86 -0
  310. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result_service.rb +5 -0
  311. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result_status.rb +6 -1
  312. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result_step.rb +39 -6
  313. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands/validate_result_type.rb +7 -11
  314. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator/commands.rb +6 -0
  315. data/lib/convenient_service/rspec/matchers/classes/results/base/entities/validator.rb +15 -1
  316. data/lib/convenient_service/rspec/matchers/classes/results/base/entities.rb +5 -0
  317. data/lib/convenient_service/rspec/matchers/classes/results/base/exceptions.rb +29 -2
  318. data/lib/convenient_service/rspec/matchers/classes/results/base.rb +20 -1
  319. data/lib/convenient_service/rspec/matchers/classes/results/be_error.rb +5 -0
  320. data/lib/convenient_service/rspec/matchers/classes/results/be_failure.rb +5 -0
  321. data/lib/convenient_service/rspec/matchers/classes/results/be_not_error.rb +5 -0
  322. data/lib/convenient_service/rspec/matchers/classes/results/be_not_failure.rb +5 -0
  323. data/lib/convenient_service/rspec/matchers/classes/results/be_not_success.rb +5 -0
  324. data/lib/convenient_service/rspec/matchers/classes/results/be_success.rb +5 -0
  325. data/lib/convenient_service/rspec/matchers/classes/results.rb +5 -0
  326. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/classes/singleton_prepend_module.rb +10 -2
  327. data/lib/convenient_service/rspec/matchers/classes.rb +21 -0
  328. data/lib/convenient_service/rspec/matchers/delegate_to.rb +6 -1
  329. data/lib/convenient_service/rspec/matchers/export.rb +5 -0
  330. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/extend_module.rb +6 -1
  331. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/have_abstract_method.rb +6 -1
  332. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/have_alias_method.rb +6 -1
  333. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/have_attr_accessor.rb +6 -1
  334. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/have_attr_reader.rb +6 -1
  335. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/have_attr_writer.rb +6 -1
  336. data/lib/convenient_service/rspec/matchers/include_config.rb +18 -0
  337. data/lib/convenient_service/rspec/matchers/include_in_order.rb +18 -0
  338. data/lib/convenient_service/rspec/matchers/include_module.rb +6 -1
  339. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/prepend_module.rb +6 -1
  340. data/lib/convenient_service/rspec/matchers/results/be_error.rb +5 -0
  341. data/lib/convenient_service/rspec/matchers/results/be_failure.rb +5 -0
  342. data/lib/convenient_service/rspec/matchers/results/be_not_error.rb +5 -0
  343. data/lib/convenient_service/rspec/matchers/results/be_not_failure.rb +5 -0
  344. data/lib/convenient_service/rspec/matchers/results/be_not_success.rb +5 -0
  345. data/lib/convenient_service/rspec/matchers/results/be_result/exceptions.rb +36 -0
  346. data/lib/convenient_service/rspec/matchers/results/be_result.rb +12 -0
  347. data/lib/convenient_service/rspec/matchers/results/be_success.rb +5 -0
  348. data/lib/convenient_service/rspec/matchers/results.rb +5 -0
  349. data/lib/convenient_service/rspec/{primitive_matchers → matchers}/singleton_prepend_module.rb +6 -1
  350. data/lib/convenient_service/rspec/matchers.rb +43 -2
  351. data/lib/convenient_service/rspec.rb +5 -3
  352. data/lib/convenient_service/service/configs/aliases.rb +47 -0
  353. data/lib/convenient_service/service/configs/standard/aliases.rb +29 -0
  354. data/lib/convenient_service/service/configs/standard/v1.rb +57 -162
  355. data/lib/convenient_service/service/configs/standard.rb +339 -125
  356. data/lib/convenient_service/service/configs.rb +5 -1
  357. data/lib/convenient_service/service/core.rb +57 -0
  358. data/lib/convenient_service/service/plugins/aliases.rb +53 -0
  359. data/lib/convenient_service/service/plugins/can_be_called/concern.rb +56 -0
  360. data/lib/convenient_service/service/plugins/can_be_called.rb +8 -0
  361. data/lib/convenient_service/service/plugins/can_have_after_step_callbacks/middleware.rb +85 -0
  362. data/lib/convenient_service/service/plugins/can_have_after_step_callbacks.rb +8 -0
  363. data/lib/convenient_service/service/plugins/can_have_around_step_callbacks/middleware.rb +89 -0
  364. data/lib/convenient_service/service/plugins/can_have_around_step_callbacks.rb +8 -0
  365. data/lib/convenient_service/service/plugins/can_have_before_step_callbacks/middleware.rb +84 -0
  366. data/lib/convenient_service/service/plugins/can_have_before_step_callbacks.rb +8 -0
  367. data/lib/convenient_service/service/plugins/can_have_connected_steps/concern.rb +254 -9
  368. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/and.rb +14 -2
  369. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/base.rb +31 -0
  370. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/complex_if.rb +220 -0
  371. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/else.rb +130 -0
  372. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/empty.rb +13 -1
  373. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/group.rb +14 -2
  374. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/if.rb +149 -0
  375. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/not.rb +13 -1
  376. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb +14 -2
  377. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/scalar.rb +13 -1
  378. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions.rb +9 -0
  379. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/step_collection.rb +11 -2
  380. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities.rb +5 -0
  381. data/lib/convenient_service/service/plugins/can_have_connected_steps/exceptions.rb +120 -10
  382. data/lib/convenient_service/service/plugins/can_have_connected_steps/middleware.rb +11 -11
  383. data/lib/convenient_service/service/plugins/can_have_connected_steps.rb +5 -0
  384. data/lib/convenient_service/service/plugins/can_have_fallbacks/concern.rb +5 -0
  385. data/lib/convenient_service/service/plugins/can_have_fallbacks/exceptions.rb +5 -0
  386. data/lib/convenient_service/service/plugins/can_have_fallbacks/middleware.rb +6 -2
  387. data/lib/convenient_service/service/plugins/can_have_fallbacks.rb +5 -0
  388. data/lib/convenient_service/service/plugins/can_have_recalculations/concern.rb +27 -0
  389. data/lib/convenient_service/service/plugins/can_have_recalculations.rb +8 -0
  390. data/lib/convenient_service/service/plugins/can_have_rollbacks/middleware.rb +38 -5
  391. data/lib/convenient_service/service/plugins/can_have_rollbacks.rb +5 -0
  392. data/lib/convenient_service/service/plugins/can_have_rspec_stubbed_results/concern.rb +34 -0
  393. data/lib/convenient_service/service/plugins/can_have_rspec_stubbed_results.rb +8 -0
  394. data/lib/convenient_service/service/plugins/can_have_sequential_steps/concern.rb +5 -16
  395. data/lib/convenient_service/service/plugins/can_have_sequential_steps/entities/step_collection.rb +5 -0
  396. data/lib/convenient_service/service/plugins/can_have_sequential_steps/entities.rb +5 -0
  397. data/lib/convenient_service/service/plugins/can_have_sequential_steps/middleware.rb +7 -5
  398. data/lib/convenient_service/service/plugins/can_have_sequential_steps.rb +5 -0
  399. data/lib/convenient_service/service/plugins/can_have_step_aware_collections.rb +12 -0
  400. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/commands/cast_step_aware_enumerable.rb +94 -0
  401. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/commands/cast_step_aware_enumerator.rb +90 -0
  402. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/commands.rb +9 -0
  403. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/concern.rb +42 -0
  404. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/arithmetic_sequence_enumerator.rb +55 -0
  405. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/array.rb +45 -0
  406. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/base.rb +469 -0
  407. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/boolean.rb +66 -0
  408. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/chain_enumerator.rb +137 -0
  409. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/enumerable.rb +1113 -0
  410. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/enumerator.rb +193 -0
  411. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/hash.rb +45 -0
  412. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/lazy_enumerator/jruby.rb +237 -0
  413. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/lazy_enumerator.rb +675 -0
  414. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/object.rb +52 -0
  415. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/object_or_nil.rb +38 -0
  416. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables/set.rb +45 -0
  417. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities/step_aware_enumerables.rb +21 -0
  418. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/entities.rb +8 -0
  419. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables/exceptions.rb +99 -0
  420. data/lib/convenient_service/service/plugins/can_have_step_aware_enumerables.rb +12 -0
  421. data/lib/convenient_service/service/plugins/can_have_steps/commands.rb +5 -1
  422. data/lib/convenient_service/service/plugins/can_have_steps/concern.rb +6 -11
  423. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method.rb +12 -4
  424. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_factory.rb +8 -10
  425. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb +66 -18
  426. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands.rb +5 -1
  427. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/concern/class_methods.rb +5 -0
  428. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/concern/instance_methods.rb +29 -35
  429. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/concern.rb +5 -0
  430. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/alias.rb +12 -12
  431. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/base.rb +24 -11
  432. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/proc.rb +12 -11
  433. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/raw.rb +12 -11
  434. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/usual.rb +12 -12
  435. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers.rb +5 -1
  436. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/directions/base.rb +5 -12
  437. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/directions/input.rb +5 -8
  438. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/directions/output.rb +6 -9
  439. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/directions.rb +38 -0
  440. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/base.rb +5 -0
  441. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/base.rb +5 -0
  442. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/proc_value.rb +5 -0
  443. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/raw_value.rb +5 -0
  444. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/string_value.rb +5 -0
  445. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/symbol_value.rb +5 -0
  446. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash.rb +5 -1
  447. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/method.rb +5 -0
  448. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/string.rb +5 -0
  449. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/symbol.rb +5 -0
  450. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories.rb +5 -1
  451. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/key.rb +5 -0
  452. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/name.rb +5 -0
  453. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities.rb +5 -1
  454. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/exceptions.rb +5 -144
  455. data/lib/convenient_service/service/plugins/can_have_steps/entities/method.rb +5 -0
  456. data/lib/convenient_service/service/plugins/can_have_steps/entities/service/concern/class_methods.rb +7 -20
  457. data/lib/convenient_service/service/plugins/can_have_steps/entities/service/concern/instance_methods.rb +12 -0
  458. data/lib/convenient_service/service/plugins/can_have_steps/entities/service/concern.rb +5 -0
  459. data/lib/convenient_service/service/plugins/can_have_steps/entities/service.rb +5 -0
  460. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands/cast_params.rb +64 -11
  461. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands/extract_params.rb +27 -3
  462. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/commands.rb +5 -0
  463. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern/instance_methods.rb +40 -99
  464. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern.rb +5 -0
  465. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/exceptions.rb +8 -3
  466. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/aliases.rb +5 -0
  467. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_completed/concern.rb +11 -6
  468. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_completed.rb +5 -0
  469. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/{can_be_executed/middleware.rb → commands/calculate_method_result.rb} +27 -11
  470. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/commands.rb +8 -0
  471. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/concern.rb +15 -2
  472. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/exceptions.rb +54 -0
  473. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/middleware.rb +39 -0
  474. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step.rb +8 -3
  475. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_service_step/commands/calculate_service_result.rb +69 -0
  476. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_service_step/commands.rb +8 -0
  477. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_service_step/concern.rb +53 -0
  478. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_service_step/exceptions.rb +38 -0
  479. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_service_step/middleware.rb +39 -0
  480. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_service_step.rb +11 -0
  481. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_alternative_steps.rb +5 -0
  482. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/concern.rb +5 -0
  483. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/exceptions.rb +5 -0
  484. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/middleware.rb +17 -43
  485. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks.rb +5 -0
  486. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_parent_result/middleware.rb +5 -0
  487. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_parent_result.rb +5 -0
  488. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_amazing_print_inspect/concern.rb +8 -4
  489. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_amazing_print_inspect.rb +5 -0
  490. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_awesome_print_inspect/concern.rb +8 -4
  491. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_awesome_print_inspect.rb +5 -0
  492. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_inspect/concern.rb +8 -5
  493. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_inspect.rb +5 -0
  494. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/concern.rb +7 -6
  495. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/exceptions.rb +40 -0
  496. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/middleware.rb +34 -3
  497. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result.rb +6 -0
  498. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/raises_on_not_result_return_value/exceptions.rb +6 -1
  499. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/raises_on_not_result_return_value/middleware.rb +6 -5
  500. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/raises_on_not_result_return_value.rb +5 -0
  501. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins.rb +6 -0
  502. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/structs/params.rb +10 -1
  503. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/structs.rb +5 -0
  504. data/lib/convenient_service/service/plugins/can_have_steps/entities/step.rb +5 -0
  505. data/lib/convenient_service/service/plugins/can_have_steps/entities.rb +5 -0
  506. data/lib/convenient_service/service/plugins/can_have_steps/middleware.rb +33 -0
  507. data/lib/convenient_service/service/plugins/can_have_steps.rb +46 -2
  508. data/lib/convenient_service/service/plugins/can_have_stubbed_results/commands/{get_service_stubbed_result.rb → delete_service_stubbed_result.rb} +15 -10
  509. data/lib/convenient_service/service/plugins/can_have_stubbed_results/commands/fetch_all_services_stubbed_results_cache.rb +22 -9
  510. data/lib/convenient_service/service/plugins/can_have_stubbed_results/commands/fetch_service_stubbed_results_cache.rb +9 -4
  511. data/lib/convenient_service/service/plugins/can_have_stubbed_results/commands/set_service_stubbed_result.rb +13 -8
  512. data/lib/convenient_service/service/plugins/can_have_stubbed_results/commands.rb +7 -1
  513. data/lib/convenient_service/service/plugins/can_have_stubbed_results/concern.rb +30 -0
  514. data/lib/convenient_service/service/plugins/can_have_stubbed_results/entities/result_mock.rb +254 -0
  515. data/lib/convenient_service/service/plugins/can_have_stubbed_results/entities/result_unmock.rb +82 -0
  516. data/lib/convenient_service/service/plugins/can_have_stubbed_results/entities/service_stub.rb +135 -0
  517. data/lib/convenient_service/service/plugins/can_have_stubbed_results/entities/service_unstub.rb +113 -0
  518. data/lib/convenient_service/service/plugins/can_have_stubbed_results/entities.rb +12 -0
  519. data/lib/convenient_service/service/plugins/can_have_stubbed_results/middleware.rb +8 -13
  520. data/lib/convenient_service/service/plugins/can_have_stubbed_results.rb +6 -1
  521. data/lib/convenient_service/service/plugins/can_not_be_inherited/concern.rb +29 -0
  522. data/lib/convenient_service/service/plugins/can_not_be_inherited/exceptions.rb +30 -0
  523. data/lib/convenient_service/service/plugins/can_not_be_inherited.rb +9 -0
  524. data/lib/convenient_service/service/plugins/collects_services_in_exception/commands/extract_service_details.rb +10 -5
  525. data/lib/convenient_service/service/plugins/collects_services_in_exception/commands.rb +5 -0
  526. data/lib/convenient_service/service/plugins/collects_services_in_exception/constants.rb +5 -0
  527. data/lib/convenient_service/service/plugins/collects_services_in_exception/middleware.rb +8 -0
  528. data/lib/convenient_service/service/plugins/collects_services_in_exception.rb +5 -0
  529. data/lib/convenient_service/service/plugins/forbids_convenient_service_entities_as_constructor_arguments/exceptions.rb +89 -0
  530. data/lib/convenient_service/service/plugins/forbids_convenient_service_entities_as_constructor_arguments/middleware.rb +90 -33
  531. data/lib/convenient_service/service/plugins/forbids_convenient_service_entities_as_constructor_arguments.rb +5 -0
  532. data/lib/convenient_service/service/plugins/has_amazing_print_inspect/concern.rb +6 -11
  533. data/lib/convenient_service/service/plugins/has_amazing_print_inspect.rb +5 -0
  534. data/lib/convenient_service/service/plugins/has_awesome_print_inspect/concern.rb +6 -11
  535. data/lib/convenient_service/service/plugins/has_awesome_print_inspect.rb +5 -0
  536. data/lib/convenient_service/service/plugins/has_inspect/concern.rb +6 -8
  537. data/lib/convenient_service/service/plugins/has_inspect.rb +5 -0
  538. data/lib/convenient_service/service/plugins/has_j_send_result/concern/class_methods.rb +6 -2
  539. data/lib/convenient_service/service/plugins/has_j_send_result/concern/instance_methods.rb +5 -0
  540. data/lib/convenient_service/service/plugins/has_j_send_result/concern.rb +5 -0
  541. data/lib/convenient_service/service/plugins/has_j_send_result/constants.rb +5 -0
  542. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/aliases.rb +22 -0
  543. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/concern.rb +47 -2
  544. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/aliases.rb +5 -0
  545. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_called/concern.rb +51 -0
  546. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_called/exceptions.rb +49 -0
  547. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_called.rb +9 -0
  548. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_exception/concern.rb +16 -2
  549. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_exception.rb +5 -0
  550. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_fallback/concern.rb +56 -0
  551. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_fallback.rb +8 -0
  552. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_own_result/concern.rb +5 -0
  553. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_own_result.rb +5 -0
  554. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_strict/concern.rb +59 -0
  555. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_strict.rb +8 -0
  556. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_stubbed_result/concern.rb +5 -0
  557. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_stubbed_result.rb +5 -0
  558. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status/concern.rb +5 -0
  559. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status.rb +5 -0
  560. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_fallbacks/concern.rb +69 -9
  561. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_fallbacks/exceptions.rb +39 -0
  562. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_fallbacks.rb +6 -0
  563. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_parent_result/concern.rb +5 -0
  564. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_parent_result/constants.rb +5 -0
  565. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_parent_result.rb +5 -0
  566. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_step/concern.rb +12 -0
  567. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_step.rb +5 -0
  568. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_amazing_print_inspect/commands/generate_inspect_output.rb +149 -0
  569. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_amazing_print_inspect/commands.rb +8 -0
  570. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_amazing_print_inspect/concern.rb +6 -12
  571. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_amazing_print_inspect.rb +6 -0
  572. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_awesome_print_inspect/commands/generate_inspect_output.rb +149 -0
  573. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_awesome_print_inspect/commands.rb +8 -0
  574. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_awesome_print_inspect/concern.rb +6 -12
  575. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_awesome_print_inspect.rb +6 -0
  576. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_inspect/concern.rb +7 -3
  577. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_inspect.rb +5 -0
  578. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/commands/cast_j_send_attributes.rb +9 -4
  579. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/commands.rb +5 -4
  580. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/concern/class_methods.rb +9 -76
  581. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/concern/instance_methods.rb +57 -8
  582. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/concern.rb +5 -0
  583. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/concern/class_methods.rb +80 -1
  584. 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 +5 -0
  585. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/concern.rb +5 -0
  586. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/plugins/aliases.rb +5 -0
  587. 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 +6 -1
  588. 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.rb +5 -0
  589. 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 +6 -1
  590. 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.rb +5 -0
  591. 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 +6 -1
  592. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/plugins/has_inspect.rb +5 -0
  593. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/plugins.rb +5 -0
  594. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code.rb +5 -1
  595. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern/class_methods.rb +81 -2
  596. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern/instance_methods.rb +84 -15
  597. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern.rb +5 -0
  598. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/aliases.rb +5 -0
  599. 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 +6 -1
  600. 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.rb +5 -0
  601. 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 +6 -1
  602. 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.rb +5 -0
  603. 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 +10 -4
  604. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/has_inspect.rb +5 -1
  605. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/has_method_readers/middleware.rb +52 -0
  606. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/has_method_readers.rb +8 -0
  607. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins.rb +6 -0
  608. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data.rb +5 -1
  609. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern/class_methods.rb +80 -1
  610. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern/instance_methods.rb +5 -0
  611. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern.rb +5 -0
  612. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/plugins/aliases.rb +5 -0
  613. 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 +6 -1
  614. 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.rb +5 -0
  615. 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 +6 -1
  616. 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.rb +5 -0
  617. 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 +6 -1
  618. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/plugins/has_inspect.rb +5 -0
  619. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/plugins.rb +5 -0
  620. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message.rb +5 -1
  621. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern/class_methods.rb +80 -1
  622. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern/instance_methods.rb +10 -0
  623. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern.rb +5 -0
  624. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/plugins/aliases.rb +5 -0
  625. 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 +5 -0
  626. 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/middleware.rb +5 -0
  627. 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.rb +5 -0
  628. 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 +6 -1
  629. 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.rb +5 -0
  630. 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 +6 -1
  631. 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.rb +5 -0
  632. 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 +6 -1
  633. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/plugins/has_inspect.rb +5 -0
  634. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/plugins.rb +5 -0
  635. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status.rb +5 -1
  636. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities.rb +5 -0
  637. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/exceptions.rb +5 -15
  638. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/middleware.rb +5 -0
  639. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/structs/j_send_attributes.rb +5 -0
  640. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/structs.rb +5 -0
  641. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes.rb +5 -0
  642. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_negated_result/concern.rb +7 -4
  643. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_negated_result.rb +5 -0
  644. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_pattern_matching_support/concern.rb +82 -0
  645. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_pattern_matching_support.rb +8 -0
  646. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects/concern/instance_methods.rb +5 -0
  647. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects/concern.rb +5 -0
  648. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects/exceptions.rb +5 -0
  649. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects.rb +5 -0
  650. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/raises_on_not_checked_result_status/exceptions.rb +5 -0
  651. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/raises_on_not_checked_result_status/middleware.rb +5 -0
  652. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/raises_on_not_checked_result_status.rb +5 -0
  653. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins.rb +10 -3
  654. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result.rb +7 -0
  655. data/lib/convenient_service/service/plugins/has_j_send_result/entities.rb +5 -0
  656. data/lib/convenient_service/service/plugins/has_j_send_result.rb +43 -3
  657. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations/concern.rb +5 -0
  658. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations/middleware.rb +20 -3
  659. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_active_model_validations.rb +5 -0
  660. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/concern.rb +5 -0
  661. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/middleware.rb +28 -11
  662. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation.rb +5 -0
  663. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/concern.rb +5 -0
  664. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/exceptions.rb +96 -0
  665. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/middleware.rb +56 -0
  666. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax.rb +7 -3
  667. data/lib/convenient_service/service/plugins/has_j_send_result_status_check_short_syntax/concern.rb +5 -0
  668. data/lib/convenient_service/service/plugins/has_j_send_result_status_check_short_syntax.rb +5 -0
  669. data/lib/convenient_service/service/plugins/has_negated_j_send_result/concern.rb +5 -0
  670. data/lib/convenient_service/service/plugins/has_negated_j_send_result.rb +5 -0
  671. data/lib/convenient_service/service/plugins/has_negated_result/concern.rb +5 -0
  672. data/lib/convenient_service/service/plugins/has_negated_result/exceptions.rb +5 -0
  673. data/lib/convenient_service/service/plugins/has_negated_result.rb +5 -0
  674. data/lib/convenient_service/service/plugins/has_result/concern.rb +5 -0
  675. data/lib/convenient_service/service/plugins/has_result/exceptions.rb +6 -1
  676. data/lib/convenient_service/service/plugins/has_result.rb +5 -0
  677. data/lib/convenient_service/service/plugins/raises_on_double_result/exceptions.rb +5 -0
  678. data/lib/convenient_service/service/plugins/raises_on_double_result/middleware.rb +6 -1
  679. data/lib/convenient_service/service/plugins/raises_on_double_result.rb +5 -0
  680. data/lib/convenient_service/service/plugins/raises_on_not_result_return_value/exceptions.rb +5 -0
  681. data/lib/convenient_service/service/plugins/raises_on_not_result_return_value/middleware.rb +6 -5
  682. data/lib/convenient_service/service/plugins/raises_on_not_result_return_value.rb +5 -0
  683. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands/format_backtrace.rb +9 -4
  684. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands/format_cause.rb +7 -12
  685. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands/format_class.rb +5 -0
  686. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands/format_exception.rb +13 -8
  687. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands/format_line.rb +5 -0
  688. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands/format_message.rb +5 -0
  689. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands.rb +5 -0
  690. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/constants.rb +5 -0
  691. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/middleware.rb +13 -6
  692. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions.rb +5 -0
  693. data/lib/convenient_service/service/plugins/sets_parent_to_foreign_result/middleware.rb +5 -0
  694. data/lib/convenient_service/service/plugins/sets_parent_to_foreign_result.rb +5 -0
  695. data/lib/convenient_service/service/plugins/wraps_result_in_db_transaction/using_active_record_base_transaction/middleware.rb +24 -0
  696. data/lib/convenient_service/service/plugins/wraps_result_in_db_transaction/using_active_record_base_transaction.rb +8 -0
  697. data/lib/convenient_service/service/plugins/wraps_result_in_db_transaction.rb +6 -1
  698. data/lib/convenient_service/service/plugins.rb +15 -5
  699. data/lib/convenient_service/service.rb +22 -0
  700. data/lib/convenient_service/specification.rb +46 -11
  701. data/lib/convenient_service/support/abstract_method/exceptions.rb +10 -0
  702. data/lib/convenient_service/support/abstract_method.rb +5 -0
  703. data/lib/convenient_service/support/arguments/exceptions.rb +30 -0
  704. data/lib/convenient_service/support/arguments/null_arguments.rb +5 -0
  705. data/lib/convenient_service/support/arguments.rb +55 -0
  706. data/lib/convenient_service/support/backtrace_cleaner.rb +10 -6
  707. data/lib/convenient_service/support/cache/constants.rb +12 -2
  708. data/lib/convenient_service/support/cache/entities/caches/array/entities/pair.rb +6 -1
  709. data/lib/convenient_service/support/cache/entities/caches/array/entities.rb +5 -0
  710. data/lib/convenient_service/support/cache/entities/caches/array.rb +93 -30
  711. data/lib/convenient_service/support/cache/entities/caches/base.rb +87 -6
  712. data/lib/convenient_service/support/cache/entities/caches/hash.rb +65 -17
  713. data/lib/convenient_service/support/cache/entities/caches/thread_safe_array.rb +29 -7
  714. data/lib/convenient_service/support/cache/entities/caches/thread_safe_hash.rb +111 -0
  715. data/lib/convenient_service/support/cache/entities/caches.rb +6 -0
  716. data/lib/convenient_service/support/cache/entities/key.rb +49 -29
  717. data/lib/convenient_service/support/cache/entities.rb +5 -0
  718. data/lib/convenient_service/support/cache/exceptions.rb +7 -2
  719. data/lib/convenient_service/support/cache.rb +19 -5
  720. data/lib/convenient_service/support/castable/exceptions.rb +5 -10
  721. data/lib/convenient_service/support/castable.rb +5 -0
  722. data/lib/convenient_service/support/command.rb +5 -0
  723. data/lib/convenient_service/support/concern.rb +5 -0
  724. data/lib/convenient_service/support/copyable.rb +17 -12
  725. data/lib/convenient_service/support/counter.rb +5 -0
  726. data/lib/convenient_service/support/delegate.rb +5 -0
  727. data/lib/convenient_service/support/dependency_container/commands/assert_valid_container.rb +5 -0
  728. data/lib/convenient_service/support/dependency_container/commands/assert_valid_method.rb +5 -0
  729. data/lib/convenient_service/support/dependency_container/commands/assert_valid_scope.rb +5 -0
  730. data/lib/convenient_service/support/dependency_container/commands/create_methods_module.rb +5 -0
  731. data/lib/convenient_service/support/dependency_container/commands/import_method.rb +8 -4
  732. data/lib/convenient_service/support/dependency_container/commands.rb +5 -0
  733. data/lib/convenient_service/support/dependency_container/constants.rb +5 -0
  734. data/lib/convenient_service/support/dependency_container/entities/method.rb +6 -1
  735. data/lib/convenient_service/support/dependency_container/entities/method_collection.rb +9 -4
  736. data/lib/convenient_service/support/dependency_container/entities/namespace.rb +6 -1
  737. data/lib/convenient_service/support/dependency_container/entities/namespace_collection.rb +7 -2
  738. data/lib/convenient_service/support/dependency_container/entities.rb +5 -0
  739. data/lib/convenient_service/support/dependency_container/exceptions.rb +5 -0
  740. data/lib/convenient_service/support/dependency_container/export.rb +5 -0
  741. data/lib/convenient_service/support/dependency_container/import.rb +6 -1
  742. data/lib/convenient_service/support/dependency_container.rb +5 -2
  743. data/lib/convenient_service/support/finite_loop.rb +5 -0
  744. data/lib/convenient_service/support/method_parameters.rb +5 -0
  745. data/lib/convenient_service/support/middleware/stack_builder/constants.rb +48 -0
  746. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/custom/constants.rb +27 -0
  747. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/custom/entities/proc_with_new.rb +49 -0
  748. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/custom/entities.rb +8 -0
  749. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/custom/exceptions.rb +36 -0
  750. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/custom.rb +244 -0
  751. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/naive.rb +55 -0
  752. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/rack.rb +57 -0
  753. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/ruby_middleware.rb +174 -0
  754. data/lib/convenient_service/support/middleware/stack_builder/entities/builders/stateful.rb +71 -0
  755. data/lib/convenient_service/support/middleware/stack_builder/entities/builders.rb +13 -0
  756. data/lib/convenient_service/support/middleware/stack_builder/entities.rb +8 -0
  757. data/lib/convenient_service/support/middleware/stack_builder/exceptions.rb +41 -0
  758. data/lib/convenient_service/support/middleware/stack_builder.rb +34 -102
  759. data/lib/convenient_service/support/middleware.rb +5 -0
  760. data/lib/convenient_service/support/never_reach_here.rb +5 -0
  761. data/lib/convenient_service/support/not_passed.rb +16 -1
  762. data/lib/convenient_service/support/raw_value.rb +5 -0
  763. data/lib/convenient_service/support/safe_method.rb +5 -0
  764. data/lib/convenient_service/support/thread_safe_counter.rb +5 -0
  765. data/lib/convenient_service/support/undefined.rb +16 -1
  766. data/lib/convenient_service/support/unique_value.rb +32 -7
  767. data/lib/convenient_service/support/value.rb +18 -6
  768. data/lib/convenient_service/support.rb +18 -0
  769. data/lib/convenient_service/utils/array/contain_exactly.rb +5 -0
  770. data/lib/convenient_service/utils/array/drop_while.rb +5 -0
  771. data/lib/convenient_service/utils/array/exceptions.rb +5 -0
  772. data/lib/convenient_service/utils/array/find_last.rb +23 -9
  773. data/lib/convenient_service/utils/array/find_yield.rb +5 -0
  774. data/lib/convenient_service/utils/array/keep_after.rb +5 -0
  775. data/lib/convenient_service/utils/array/limited_push.rb +5 -0
  776. data/lib/convenient_service/utils/array/merge.rb +5 -0
  777. data/lib/convenient_service/utils/array/rjust.rb +5 -0
  778. data/lib/convenient_service/utils/array/wrap.rb +5 -0
  779. data/lib/convenient_service/utils/array.rb +5 -0
  780. data/lib/convenient_service/utils/bool/to_bool.rb +5 -0
  781. data/lib/convenient_service/utils/bool.rb +5 -0
  782. data/lib/convenient_service/utils/class/display_name.rb +13 -8
  783. data/lib/convenient_service/utils/class/get_attached_object.rb +79 -0
  784. data/lib/convenient_service/utils/class.rb +15 -0
  785. data/lib/convenient_service/utils/enumerable/find_last.rb +48 -0
  786. data/lib/convenient_service/utils/enumerable.rb +20 -0
  787. data/lib/convenient_service/utils/hash/assert_valid_keys.rb +8 -3
  788. data/lib/convenient_service/utils/hash/except.rb +9 -3
  789. data/lib/convenient_service/utils/hash/triple_equality_compare.rb +13 -10
  790. data/lib/convenient_service/utils/hash.rb +5 -5
  791. data/lib/convenient_service/utils/kernel/silence_warnings.rb +51 -0
  792. data/lib/convenient_service/utils/kernel.rb +20 -0
  793. data/lib/convenient_service/utils/method/defined.rb +7 -2
  794. data/lib/convenient_service/utils/method/name/append.rb +53 -0
  795. data/lib/convenient_service/utils/method/name.rb +22 -0
  796. data/lib/convenient_service/utils/method/remove.rb +77 -0
  797. data/lib/convenient_service/utils/method.rb +11 -0
  798. data/lib/convenient_service/utils/module/class_method_defined.rb +5 -0
  799. data/lib/convenient_service/utils/module/exceptions.rb +28 -0
  800. data/lib/convenient_service/utils/module/fetch_own_const.rb +40 -30
  801. data/lib/convenient_service/utils/module/get_namespace.rb +71 -0
  802. data/lib/convenient_service/utils/module/get_own_const.rb +25 -15
  803. data/lib/convenient_service/utils/module/get_own_instance_method.rb +5 -0
  804. data/lib/convenient_service/utils/module/has_own_instance_method.rb +5 -0
  805. data/lib/convenient_service/utils/module/include_module.rb +6 -1
  806. data/lib/convenient_service/utils/module/instance_method_defined.rb +5 -0
  807. data/lib/convenient_service/utils/module.rb +12 -0
  808. data/lib/convenient_service/utils/object/clamp_class.rb +54 -46
  809. data/lib/convenient_service/utils/object/duck_class.rb +88 -80
  810. data/lib/convenient_service/utils/object/get_own_method.rb +6 -1
  811. data/lib/convenient_service/utils/object/instance_variable_delete.rb +4 -2
  812. data/lib/convenient_service/utils/object/instance_variable_fetch.rb +4 -2
  813. data/lib/convenient_service/utils/object/memoize_including_falsy_values.rb +4 -2
  814. data/lib/convenient_service/utils/object/resolve_type.rb +17 -10
  815. data/lib/convenient_service/utils/object/safe_send.rb +7 -0
  816. data/lib/convenient_service/utils/object/with_one_time_object.rb +35 -0
  817. data/lib/convenient_service/utils/object.rb +14 -0
  818. data/lib/convenient_service/utils/proc/conjunct.rb +5 -0
  819. data/lib/convenient_service/utils/proc/display.rb +6 -1
  820. data/lib/convenient_service/utils/proc/exec_config.rb +25 -8
  821. data/lib/convenient_service/utils/proc.rb +5 -0
  822. data/lib/convenient_service/utils/string/camelize.rb +5 -0
  823. data/lib/convenient_service/utils/string/demodulize.rb +5 -0
  824. data/lib/convenient_service/utils/string/enclose.rb +15 -10
  825. data/lib/convenient_service/utils/string/split.rb +5 -0
  826. data/lib/convenient_service/utils/string/tab.rb +60 -0
  827. data/lib/convenient_service/utils/string/truncate.rb +5 -0
  828. data/lib/convenient_service/utils/string.rb +10 -0
  829. data/lib/convenient_service/utils.rb +29 -0
  830. data/lib/convenient_service/version.rb +13 -1
  831. data/lib/convenient_service.rb +254 -104
  832. metadata +244 -804
  833. data/lib/convenient_service/alias.rb +0 -3
  834. data/lib/convenient_service/commands/is_service.rb +0 -28
  835. data/lib/convenient_service/commands/is_service_class.rb +0 -30
  836. data/lib/convenient_service/common/plugins/can_have_user_provided_entity/container.rb +0 -17
  837. data/lib/convenient_service/common/plugins/has_around_callbacks/concern.rb +0 -26
  838. data/lib/convenient_service/common/plugins/has_around_callbacks/middleware.rb +0 -160
  839. data/lib/convenient_service/common/plugins/has_around_callbacks.rb +0 -5
  840. data/lib/convenient_service/common/plugins/has_callbacks/concern.rb +0 -46
  841. data/lib/convenient_service/common/plugins/has_callbacks/entities/type/class_methods.rb +0 -26
  842. data/lib/convenient_service/common/plugins/has_callbacks/entities/type.rb +0 -50
  843. data/lib/convenient_service/common/plugins/has_callbacks/entities/type_collection.rb +0 -33
  844. data/lib/convenient_service/common/plugins/has_callbacks/middleware.rb +0 -66
  845. data/lib/convenient_service/common/plugins/has_callbacks.rb +0 -5
  846. data/lib/convenient_service/common/plugins/has_internals/commands/create_internals_class.rb +0 -41
  847. data/lib/convenient_service/dependencies/extractions/b.rb +0 -14
  848. data/lib/convenient_service/dependencies/extractions/byebug_syntax_highlighting.rb +0 -58
  849. data/lib/convenient_service/dependencies/extractions/ce.rb +0 -16
  850. data/lib/convenient_service/dependencies/extractions/ds.rb +0 -45
  851. data/lib/convenient_service/rspec/helpers/classes/stub_service/constants.rb +0 -20
  852. data/lib/convenient_service/rspec/helpers/classes/stub_service/entities/result_spec.rb +0 -216
  853. data/lib/convenient_service/rspec/helpers/classes/stub_service/entities/stubbed_service.rb +0 -97
  854. data/lib/convenient_service/rspec/helpers/classes/stub_service/entities.rb +0 -4
  855. data/lib/convenient_service/rspec/helpers/classes/stub_service.rb +0 -27
  856. data/lib/convenient_service/rspec/primitive_helpers/classes.rb +0 -4
  857. data/lib/convenient_service/rspec/primitive_helpers/ignoring_exception.rb +0 -13
  858. data/lib/convenient_service/rspec/primitive_helpers.rb +0 -19
  859. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/commands.rb +0 -3
  860. data/lib/convenient_service/rspec/primitive_matchers/classes/extend_module.rb +0 -40
  861. data/lib/convenient_service/rspec/primitive_matchers/classes/have_alias_method.rb +0 -48
  862. data/lib/convenient_service/rspec/primitive_matchers/classes/have_attr_accessor.rb +0 -43
  863. data/lib/convenient_service/rspec/primitive_matchers/classes/have_attr_reader.rb +0 -47
  864. data/lib/convenient_service/rspec/primitive_matchers/classes/have_attr_writer.rb +0 -47
  865. data/lib/convenient_service/rspec/primitive_matchers/classes/include_module.rb +0 -40
  866. data/lib/convenient_service/rspec/primitive_matchers/classes/prepend_module.rb +0 -40
  867. data/lib/convenient_service/rspec/primitive_matchers/classes.rb +0 -15
  868. data/lib/convenient_service/rspec/primitive_matchers/delegate_to.rb +0 -13
  869. data/lib/convenient_service/rspec/primitive_matchers/include_module.rb +0 -13
  870. data/lib/convenient_service/rspec/primitive_matchers.rb +0 -41
  871. data/lib/convenient_service/service/configs/amazing_print_inspect/aliases.rb +0 -7
  872. data/lib/convenient_service/service/configs/amazing_print_inspect.rb +0 -61
  873. data/lib/convenient_service/service/configs/awesome_print_inspect/aliases.rb +0 -7
  874. data/lib/convenient_service/service/configs/awesome_print_inspect.rb +0 -61
  875. data/lib/convenient_service/service/configs/essential.rb +0 -208
  876. data/lib/convenient_service/service/plugins/can_have_method_steps/middleware.rb +0 -25
  877. data/lib/convenient_service/service/plugins/can_have_method_steps.rb +0 -3
  878. data/lib/convenient_service/service/plugins/can_have_steps/commands/create_step_class.rb +0 -41
  879. data/lib/convenient_service/service/plugins/can_have_steps/commands/is_step.rb +0 -34
  880. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_direction.rb +0 -95
  881. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/reassignment.rb +0 -48
  882. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/reassignment_value.rb +0 -42
  883. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/reassignment.rb +0 -40
  884. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/values/reassignment.rb +0 -43
  885. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/values.rb +0 -3
  886. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/can_be_executed/exceptions.rb +0 -38
  887. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/can_be_executed.rb +0 -4
  888. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/can_be_printed/middleware.rb +0 -32
  889. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/can_be_printed.rb +0 -3
  890. data/lib/convenient_service/service/plugins/can_have_stubbed_results/container.rb +0 -17
  891. data/lib/convenient_service/service/plugins/can_recalculate_result/concern.rb +0 -26
  892. data/lib/convenient_service/service/plugins/can_recalculate_result.rb +0 -3
  893. data/lib/convenient_service/service/plugins/counts_stubbed_results_invocations/middleware.rb +0 -24
  894. data/lib/convenient_service/service/plugins/counts_stubbed_results_invocations.rb +0 -3
  895. data/lib/convenient_service/service/plugins/has_j_send_result/commands/create_result_class.rb +0 -41
  896. data/lib/convenient_service/service/plugins/has_j_send_result/commands/is_result.rb +0 -34
  897. data/lib/convenient_service/service/plugins/has_j_send_result/commands.rb +0 -4
  898. data/lib/convenient_service/service/plugins/has_j_send_result/container.rb +0 -29
  899. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_recalculate_result/concern.rb +0 -27
  900. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_recalculate_result.rb +0 -3
  901. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_code_class.rb +0 -49
  902. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_data_class.rb +0 -49
  903. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_message_class.rb +0 -49
  904. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_status_class.rb +0 -49
  905. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/commands/is_code.rb +0 -49
  906. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/commands.rb +0 -3
  907. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/commands/is_data.rb +0 -49
  908. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/commands.rb +0 -3
  909. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/has_inspect/commands/generate_inspect_output.rb +0 -77
  910. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/plugins/has_inspect/commands.rb +0 -3
  911. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/commands/is_message.rb +0 -49
  912. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/commands.rb +0 -3
  913. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/commands/is_status.rb +0 -49
  914. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/commands.rb +0 -3
  915. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_stubbed_result_invocations_counter/concern.rb +0 -30
  916. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_stubbed_result_invocations_counter/middleware.rb +0 -38
  917. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_stubbed_result_invocations_counter.rb +0 -4
  918. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/error/exceptions.rb +0 -87
  919. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/error/middleware.rb +0 -56
  920. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/error.rb +0 -4
  921. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/failure/exceptions.rb +0 -90
  922. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/failure/middleware.rb +0 -56
  923. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/failure.rb +0 -4
  924. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/success/commands/refute_kwargs_contain_j_send_and_extra_keys.rb +0 -67
  925. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/success/commands.rb +0 -3
  926. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/success/exceptions.rb +0 -41
  927. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/success/middleware.rb +0 -27
  928. data/lib/convenient_service/service/plugins/has_j_send_result_short_syntax/success.rb +0 -5
  929. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/concern.rb +0 -29
  930. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/code/commands/generate_lines.rb +0 -94
  931. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/code/commands/generate_method_step_lines.rb +0 -115
  932. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/code/commands/generate_result_lines.rb +0 -105
  933. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/code/commands/generate_service_lines.rb +0 -88
  934. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/code/commands/generate_service_step_lines.rb +0 -127
  935. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/code/commands.rb +0 -7
  936. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/code.rb +0 -90
  937. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/settings.rb +0 -144
  938. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities/template.rb +0 -85
  939. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/entities.rb +0 -5
  940. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart/templates/flowchart.html.erb +0 -95
  941. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities/flowchart.rb +0 -108
  942. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/entities.rb +0 -3
  943. data/lib/convenient_service/service/plugins/has_mermaid_flowchart.rb +0 -4
  944. data/lib/convenient_service/service/plugins/wraps_result_in_d_b_transaction/middleware.rb +0 -17
  945. data/lib/convenient_service/support/dependency_container/container.rb +0 -23
@@ -1,5 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ ##
4
+ # @author Marian Kostyk <mariankostyk13895@gmail.com>
5
+ # @license LGPLv3 <https://www.gnu.org/licenses/lgpl-3.0.html>
6
+ ##
7
+
3
8
  require_relative "standard/v1"
4
9
  require_relative "standard/aliases"
5
10
 
@@ -10,230 +15,439 @@ module ConvenientService
10
15
  # Default configuration for the user-defined services.
11
16
  #
12
17
  module Standard
13
- include Support::Concern
18
+ include ConvenientService::Config
19
+
20
+ available_options do
21
+ [
22
+ :essential,
23
+ :callbacks,
24
+ :fallbacks,
25
+ :rollbacks,
26
+ :fault_tolerance,
27
+ :inspect,
28
+ :recalculation,
29
+ :result_parents_trace,
30
+ :code_review_automation,
31
+ :short_syntax,
32
+ :type_safety,
33
+ :exception_services_trace,
34
+ :per_instance_caching,
35
+ :backtrace_cleaner,
36
+ :active_model_attribute_assignment,
37
+ :dry_initializer,
38
+ :active_model_attributes,
39
+ :active_model_validations,
40
+ :dry_validation,
41
+ :memo_wise,
42
+ :has_amazing_print_inspect,
43
+ :has_awesome_print_inspect,
44
+ :not_passed_arguments,
45
+ :finite_loop,
46
+ :test,
47
+ :rspec
48
+ ]
49
+ end
50
+
51
+ default_options do
52
+ [
53
+ :essential,
54
+ :callbacks,
55
+ :fallbacks,
56
+ :inspect,
57
+ :recalculation,
58
+ :result_parents_trace,
59
+ :code_review_automation,
60
+ :short_syntax,
61
+ :type_safety,
62
+ :exception_services_trace,
63
+ :per_instance_caching,
64
+ :backtrace_cleaner,
65
+ test: Dependencies.rspec.loaded? || Dependencies.minitest.loaded?,
66
+ rspec: Dependencies.rspec.loaded?
67
+ ]
68
+ end
14
69
 
15
70
  ##
16
71
  # @internal
17
72
  # IMPORTANT: Order of plugins matters.
18
73
  #
19
74
  # NOTE: `class_exec` (that is used under the hood by `included`) defines `class Result` in the global namespace.
20
- # That is why `class self::Result` is used.
75
+ # That is why `entity :Result do` is used.
21
76
  # - https://stackoverflow.com/a/51965126/12201472
22
77
  #
23
- # rubocop:disable Lint/ConstantDefinitionInBlock
24
78
  included do
25
- include Configs::Essential
79
+ include ConvenientService::Service::Core
26
80
 
27
81
  concerns do
28
- use ConvenientService::Plugins::Common::CachesConstructorArguments::Concern
29
- use ConvenientService::Plugins::Common::CanBeCopied::Concern
30
- use ConvenientService::Plugins::Service::CanRecalculateResult::Concern
31
- use ConvenientService::Plugins::Service::HasJSendResultShortSyntax::Concern
32
- use ConvenientService::Plugins::Service::HasJSendResultStatusCheckShortSyntax::Concern
33
-
34
- use ConvenientService::Plugins::Common::HasCallbacks::Concern
35
- use ConvenientService::Plugins::Common::HasAroundCallbacks::Concern
36
-
37
- use ConvenientService::Plugins::Service::HasMermaidFlowchart::Concern
82
+ use ConvenientService::Plugins::Service::CanHaveStubbedResults::Concern if options.enabled?(:test) || options.enabled?(:rspec)
83
+ use ConvenientService::Plugins::Service::CanHaveRSpecStubbedResults::Concern if options.enabled?(:rspec)
84
+ use ConvenientService::Plugins::Common::HasInternals::Concern if options.enabled?(:essential)
85
+ use ConvenientService::Plugins::Common::HasConstructor::Concern if options.enabled?(:essential)
86
+ use ConvenientService::Plugins::Common::HasConstructorWithoutInitialize::Concern if options.enabled?(:essential)
87
+ use ConvenientService::Plugins::Service::HasResult::Concern if options.enabled?(:essential)
88
+ use ConvenientService::Plugins::Service::HasJSendResult::Concern if options.enabled?(:essential)
89
+ use ConvenientService::Plugins::Service::HasNegatedResult::Concern if options.enabled?(:essential)
90
+ use ConvenientService::Plugins::Service::HasNegatedJSendResult::Concern if options.enabled?(:essential)
91
+ use ConvenientService::Plugins::Service::CanHaveSteps::Concern if options.enabled?(:essential)
92
+ use ConvenientService::Plugins::Service::CanHaveConnectedSteps::Concern if options.enabled?(:essential)
93
+ use ConvenientService::Plugins::Service::CanHaveStepAwareEnumerables::Concern if options.enabled?(:essential)
94
+ use ConvenientService::Plugins::Service::CanBeCalled::Concern if options.enabled?(:essential)
95
+ use ConvenientService::Plugins::Common::CanHaveCallbacks::Concern if options.enabled?(:callbacks)
96
+ use ConvenientService::Plugins::Service::CanHaveFallbacks::Concern if options.enabled?(:fallbacks)
97
+ use ConvenientService::Plugins::Service::HasInspect::Concern if options.enabled?(:inspect)
98
+ use ConvenientService::Plugins::Service::HasAwesomePrintInspect::Concern if options.enabled?(:awesome_print_inspect)
99
+ use ConvenientService::Plugins::Service::HasAmazingPrintInspect::Concern if options.enabled?(:amazing_print_inspect)
100
+ use ConvenientService::Plugins::Common::CachesConstructorArguments::Concern if options.enabled?(:recalculation)
101
+ use ConvenientService::Plugins::Common::CanBeCopied::Concern if options.enabled?(:recalculation)
102
+ use ConvenientService::Plugins::Service::CanHaveRecalculations::Concern if options.enabled?(:recalculation)
103
+ use ConvenientService::Plugins::Service::CanNotBeInherited::Concern if options.enabled?(:code_review_automation)
104
+ use ConvenientService::Plugins::Service::HasJSendResultShortSyntax::Concern if options.enabled?(:short_syntax)
105
+ use ConvenientService::Plugins::Service::HasJSendResultStatusCheckShortSyntax::Concern if options.enabled?(:short_syntax)
106
+ use ConvenientService::Plugins::Common::AssignsAttributesInConstructor::UsingActiveModelAttributeAssignment::Concern if options.enabled?(:active_model_attribute_assignment)
107
+ use ConvenientService::Plugins::Common::AssignsAttributesInConstructor::UsingDryInitializer::Concern if options.enabled?(:dry_initializer)
108
+ use ConvenientService::Plugins::Common::HasAttributes::UsingActiveModelAttributes::Concern if options.enabled?(:active_model_attributes)
109
+ use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingActiveModelValidations::Concern if options.enabled?(:active_model_validations)
110
+ use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingDryValidation::Concern if options.enabled?(:dry_validation)
111
+ use ConvenientService::Plugins::Common::HasMemoization::UsingMemoWise::Concern if options.enabled?(:memo_wise)
112
+ use ConvenientService::Plugins::Common::CanHaveNotPassedArguments::Concern if options.enabled?(:not_passed_arguments)
113
+ use ConvenientService::Plugins::Common::CanUtilizeFiniteLoop::Concern if options.enabled?(:finite_loop)
38
114
  end
39
115
 
40
116
  middlewares :initialize do
41
- use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware
42
- use ConvenientService::Plugins::Common::CachesConstructorArguments::Middleware
117
+ use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
118
+ use ConvenientService::Plugins::Common::CachesConstructorArguments::Middleware if options.enabled?(:recalculation)
119
+ use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
120
+ use ConvenientService::Plugins::Service::CanHaveSteps::Middleware if options.enabled?(:essential)
121
+ use ConvenientService::Plugins::Common::AssignsAttributesInConstructor::UsingActiveModelAttributeAssignment::Middleware if options.enabled?(:active_model_attribute_assignment)
122
+ use ConvenientService::Plugins::Service::ForbidsConvenientServiceEntitiesAsConstructorArguments::Middleware if options.enabled?(:code_review_automation)
43
123
  end
44
124
 
45
125
  middlewares :result do
46
- unshift ConvenientService::Plugins::Service::CollectsServicesInException::Middleware
47
-
48
- insert_before \
49
- ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware,
50
- ConvenientService::Plugins::Common::HasCallbacks::Middleware
126
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
127
+ use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
128
+ use ConvenientService::Plugins::Service::CanHaveStubbedResults::Middleware if options.enabled?(:test) || options.enabled?(:rspec)
129
+ use ConvenientService::Plugins::Common::CanHaveCallbacks::Middleware if options.enabled?(:callbacks)
130
+ use ConvenientService::Plugins::Service::CanHaveRollbacks::Middleware if options.enabled?(:rollbacks)
131
+ use ConvenientService::Plugins::Service::SetsParentToForeignResult::Middleware if options.enabled?(:result_parents_trace)
132
+ use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
133
+ use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance)
134
+ use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
135
+ use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingActiveModelValidations::Middleware if options.enabled?(:active_model_validations)
136
+ use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingDryValidation::Middleware if options.enabled?(:dry_validation)
137
+ use ConvenientService::Plugins::Service::CanHaveConnectedSteps::Middleware if options.enabled?(:essential)
138
+ end
51
139
 
52
- insert_after \
53
- ConvenientService::Plugins::Common::HasCallbacks::Middleware,
54
- ConvenientService::Plugins::Common::HasAroundCallbacks::Middleware
140
+ middlewares :negated_result do
141
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
142
+ use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
143
+ use ConvenientService::Plugins::Common::EnsuresNegatedJSendResult::Middleware if options.enabled?(:essential)
144
+ use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
145
+ use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance)
146
+ use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
147
+ end
55
148
 
56
- ##
57
- # TODO: Rewrite. This plugin does NOT do what it states. Probably I was NOT with a clear mind while writing it (facepalm).
58
- #
59
- # use ConvenientService::Plugins::Service::RaisesOnDoubleResult::Middleware
149
+ middlewares :regular_result do
150
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
151
+ end
60
152
 
61
- insert_before \
62
- ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware,
63
- ConvenientService::Plugins::Service::SetsParentToForeignResult::Middleware
153
+ middlewares :steps_result do
154
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
64
155
  end
65
156
 
66
157
  middlewares :fallback_failure_result do
67
- use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware
68
- use ConvenientService::Plugins::Common::CachesReturnValue::Middleware
69
-
70
- use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware
71
- use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: :failure)
158
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
159
+ use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
160
+ use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
161
+ # use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO: Dedicted `rescue`?
162
+ use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
163
+ use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: :failure) if options.enabled?(:fallbacks)
72
164
  end
73
165
 
74
166
  middlewares :fallback_error_result do
75
- use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware
76
- use ConvenientService::Plugins::Common::CachesReturnValue::Middleware
77
-
78
- use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware
79
- use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: :error)
167
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
168
+ use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
169
+ use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
170
+ # use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO: Dedicted `rescue`?
171
+ use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
172
+ use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: :error) if options.enabled?(:fallbacks)
80
173
  end
81
174
 
82
175
  middlewares :fallback_result do
83
- use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware
84
- use ConvenientService::Plugins::Common::CachesReturnValue::Middleware
176
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
177
+ use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware if options.enabled?(:exception_services_trace)
178
+ use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
179
+ # use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance) # TODO: Dedicted `rescue`?
180
+ use ConvenientService::Plugins::Common::CleansExceptionBacktrace::Middleware if options.enabled?(:backtrace_cleaner)
181
+ use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: nil) if options.enabled?(:fallbacks)
182
+ end
85
183
 
86
- use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware
87
- use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: nil)
184
+ middlewares :success do
185
+ use ConvenientService::Plugins::Service::HasJSendResultShortSyntax::Middleware if options.enabled?(:short_syntax)
88
186
  end
89
187
 
90
- middlewares :negated_result do
91
- use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware
92
- use ConvenientService::Plugins::Common::CachesReturnValue::Middleware
188
+ middlewares :failure do
189
+ use ConvenientService::Plugins::Service::HasJSendResultShortSyntax::Middleware if options.enabled?(:short_syntax)
190
+ end
93
191
 
94
- use ConvenientService::Plugins::Common::EnsuresNegatedJSendResult::Middleware
192
+ middlewares :error do
193
+ use ConvenientService::Plugins::Service::HasJSendResultShortSyntax::Middleware if options.enabled?(:short_syntax)
95
194
  end
96
195
 
97
- ##
98
- # TODO:
99
- # `after :step do |step|` is executed after step result is calculated.
100
- # This completely makes sence and is useful for debugging for example.
101
- #
102
- # But `before :step do` is also executed after step result is calculated.
103
- # That confuses the end-users a lot.
104
- # Probably a dedicated plugin is needed?
105
- # Or to forbid `before :step do`?
106
- #
107
- middlewares :step do
108
- use ConvenientService::Plugins::Common::HasCallbacks::Middleware
109
- use ConvenientService::Plugins::Common::HasAroundCallbacks::Middleware
196
+ middlewares :result, scope: :class do
197
+ use ConvenientService::Plugins::Service::CanHaveStubbedResults::Middleware if options.enabled?(:test) || options.enabled?(:rspec)
198
+ use ConvenientService::Plugins::Service::RescuesResultUnhandledExceptions::Middleware if options.enabled?(:fault_tolerance)
110
199
  end
111
200
 
112
- middlewares :success do
113
- use ConvenientService::Plugins::Service::HasJSendResultShortSyntax::Success::Middleware
201
+ middlewares :before, scope: :class do
202
+ use ConvenientService::Plugins::Service::CanHaveBeforeStepCallbacks::Middleware if options.enabled?(:callbacks)
114
203
  end
115
204
 
116
- middlewares :failure do
117
- use ConvenientService::Plugins::Service::HasJSendResultShortSyntax::Failure::Middleware
205
+ middlewares :around, scope: :class do
206
+ use ConvenientService::Plugins::Service::CanHaveAroundStepCallbacks::Middleware if options.enabled?(:callbacks)
118
207
  end
119
208
 
120
- middlewares :error do
121
- use ConvenientService::Plugins::Service::HasJSendResultShortSyntax::Error::Middleware
209
+ middlewares :after, scope: :class do
210
+ use ConvenientService::Plugins::Service::CanHaveAfterStepCallbacks::Middleware if options.enabled?(:callbacks)
122
211
  end
123
212
 
124
- class self::Result
213
+ entity :Result do
125
214
  concerns do
126
- use ConvenientService::Plugins::Common::HasJSendResultDuckShortSyntax::Concern
127
- use ConvenientService::Plugins::Result::CanRecalculateResult::Concern
215
+ use ConvenientService::Plugins::Common::HasInternals::Concern if options.enabled?(:essential)
216
+ use ConvenientService::Plugins::Common::HasConstructor::Concern if options.enabled?(:essential)
217
+ use ConvenientService::Plugins::Common::HasConstructorWithoutInitialize::Concern if options.enabled?(:essential)
218
+ use ConvenientService::Plugins::Result::HasJSendStatusAndAttributes::Concern if options.enabled?(:essential)
219
+ use ConvenientService::Plugins::Result::CanHaveStep::Concern if options.enabled?(:essential)
220
+ use ConvenientService::Plugins::Result::CanBeCalled::Concern if options.enabled?(:essential)
221
+ use ConvenientService::Plugins::Result::CanBeStrict::Concern if options.enabled?(:essential)
222
+ use ConvenientService::Plugins::Result::HasNegatedResult::Concern if options.enabled?(:essential)
223
+ use ConvenientService::Plugins::Result::HasPatternMatchingSupport::Concern if options.enabled?(:essential)
224
+ use ConvenientService::Plugins::Result::CanBeFromFallback::Concern if options.enabled?(:fallbacks)
225
+ use ConvenientService::Plugins::Result::CanHaveFallbacks::Concern if options.enabled?(:fallbacks)
226
+ use ConvenientService::Plugins::Result::CanBeFromException::Concern if options.enabled?(:fault_tolerance)
227
+ use ConvenientService::Plugins::Result::HasInspect::Concern if options.enabled?(:inspect)
228
+ use ConvenientService::Plugins::Result::HasAwesomePrintInspect::Concern if options.enabled?(:awesome_print_inspect)
229
+ use ConvenientService::Plugins::Result::HasAmazingPrintInspect::Concern if options.enabled?(:amazing_print_inspect)
230
+ use ConvenientService::Plugins::Result::CanBeOwnResult::Concern if options.enabled?(:result_parents_trace)
231
+ use ConvenientService::Plugins::Result::CanHaveParentResult::Concern if options.enabled?(:result_parents_trace)
232
+ use ConvenientService::Plugins::Result::CanBeStubbedResult::Concern if options.enabled?(:test) || options.enabled?(:rspec)
233
+ use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Concern if options.enabled?(:code_review_automation)
234
+ use ConvenientService::Plugins::Common::HasJSendResultDuckShortSyntax::Concern if options.enabled?(:short_syntax)
235
+ # use ConvenientService::Plugins::Result::HelpsToLearnSimilaritiesWithCommonObjects::Concern
236
+ end
128
237
 
129
- use ConvenientService::Plugins::Result::HasNegatedResult::Concern
130
- use ConvenientService::Plugins::Result::CanBeFromException::Concern
131
- use ConvenientService::Plugins::Result::CanBeOwnResult::Concern
132
- use ConvenientService::Plugins::Result::CanHaveFallbacks::Concern
133
- use ConvenientService::Plugins::Result::CanHaveParentResult::Concern
134
- use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Concern
238
+ middlewares :initialize do
239
+ use ConvenientService::Plugins::Result::HasJSendStatusAndAttributes::Middleware if options.enabled?(:essential)
240
+ end
241
+
242
+ middlewares :negated_result do
243
+ use ConvenientService::Plugins::Common::EnsuresNegatedJSendResult::Middleware if options.enabled?(:essential)
135
244
  end
136
245
 
137
246
  middlewares :data do
138
- use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware
247
+ use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware if options.enabled?(:code_review_automation)
139
248
  end
140
249
 
141
250
  middlewares :message do
142
- use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware
251
+ use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware if options.enabled?(:code_review_automation)
143
252
  end
144
253
 
145
254
  middlewares :code do
146
- use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware
255
+ use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware if options.enabled?(:code_review_automation)
147
256
  end
148
257
 
149
- middlewares :negated_result do
150
- use ConvenientService::Plugins::Common::EnsuresNegatedJSendResult::Middleware
151
- end
152
-
153
- class self::Status
258
+ entity :Status do
154
259
  concerns do
155
- use ConvenientService::Plugins::Status::CanBeChecked::Concern
260
+ use ConvenientService::Plugins::Common::HasInternals::Concern if options.enabled?(:essential)
261
+ use ConvenientService::Plugins::Status::HasInspect::Concern if options.enabled?(:inspect)
262
+ use ConvenientService::Plugins::Status::HasAwesomePrintInspect::Concern if options.enabled?(:awesome_print_inspect)
263
+ use ConvenientService::Plugins::Status::HasAmazingPrintInspect::Concern if options.enabled?(:amazing_print_inspect)
264
+ use ConvenientService::Plugins::Status::CanBeChecked::Concern if options.enabled?(:code_review_automation)
156
265
  end
157
266
 
158
267
  middlewares :success? do
159
- use ConvenientService::Plugins::Status::CanBeChecked::Middleware
268
+ use ConvenientService::Plugins::Status::CanBeChecked::Middleware if options.enabled?(:code_review_automation)
160
269
  end
161
270
 
162
271
  middlewares :failure? do
163
- use ConvenientService::Plugins::Status::CanBeChecked::Middleware
272
+ use ConvenientService::Plugins::Status::CanBeChecked::Middleware if options.enabled?(:code_review_automation)
164
273
  end
165
274
 
166
275
  middlewares :error? do
167
- use ConvenientService::Plugins::Status::CanBeChecked::Middleware
276
+ use ConvenientService::Plugins::Status::CanBeChecked::Middleware if options.enabled?(:code_review_automation)
168
277
  end
169
278
 
170
279
  middlewares :not_success? do
171
- use ConvenientService::Plugins::Status::CanBeChecked::Middleware
280
+ use ConvenientService::Plugins::Status::CanBeChecked::Middleware if options.enabled?(:code_review_automation)
172
281
  end
173
282
 
174
283
  middlewares :not_failure? do
175
- use ConvenientService::Plugins::Status::CanBeChecked::Middleware
284
+ use ConvenientService::Plugins::Status::CanBeChecked::Middleware if options.enabled?(:code_review_automation)
176
285
  end
177
286
 
178
287
  middlewares :not_error? do
179
- use ConvenientService::Plugins::Status::CanBeChecked::Middleware
288
+ use ConvenientService::Plugins::Status::CanBeChecked::Middleware if options.enabled?(:code_review_automation)
289
+ end
290
+
291
+ entity :Internals do
292
+ concerns do
293
+ use ConvenientService::Plugins::Internals::HasCache::Concern if options.enabled?(:per_instance_caching)
294
+ end
180
295
  end
181
296
  end
182
- end
183
297
 
184
- class self::Step
185
- concerns do
186
- use ConvenientService::Plugins::Common::HasJSendResultDuckShortSyntax::Concern
187
- use ConvenientService::Plugins::Step::CanHaveFallbacks::Concern
298
+ entity :Data do
299
+ concerns do
300
+ use ConvenientService::Plugins::Data::HasInspect::Concern if options.enabled?(:inspect)
301
+ use ConvenientService::Plugins::Data::HasAwesomePrintInspect::Concern if options.enabled?(:awesome_print_inspect)
302
+ use ConvenientService::Plugins::Data::HasAmazingPrintInspect::Concern if options.enabled?(:amazing_print_inspect)
303
+ end
304
+
305
+ middlewares :initialize do
306
+ use ConvenientService::Plugins::Data::HasMethodReaders::Middleware if options.enabled?(:short_syntax)
307
+ end
188
308
  end
189
309
 
190
- middlewares :result do
191
- insert_after \
192
- ConvenientService::Plugins::Step::HasResult::Middleware,
193
- ConvenientService::Plugins::Step::CanHaveParentResult::Middleware
310
+ entity :Message do
311
+ concerns do
312
+ use ConvenientService::Plugins::Message::HasInspect::Concern if options.enabled?(:inspect)
313
+ use ConvenientService::Plugins::Message::HasAwesomePrintInspect::Concern if options.enabled?(:awesome_print_inspect)
314
+ use ConvenientService::Plugins::Message::HasAmazingPrintInspect::Concern if options.enabled?(:amazing_print_inspect)
315
+ end
316
+ end
194
317
 
195
- insert_after \
196
- ConvenientService::Plugins::Step::HasResult::Middleware,
197
- ConvenientService::Plugins::Step::CanHaveFallbacks::Middleware.with(fallback_true_status: :failure)
318
+ entity :Code do
319
+ concerns do
320
+ use ConvenientService::Plugins::Code::HasInspect::Concern if options.enabled?(:inspect)
321
+ use ConvenientService::Plugins::Code::HasAwesomePrintInspect::Concern if options.enabled?(:awesome_print_inspect)
322
+ use ConvenientService::Plugins::Code::HasAmazingPrintInspect::Concern if options.enabled?(:amazing_print_inspect)
323
+ end
324
+ end
325
+
326
+ entity :Internals do
327
+ concerns do
328
+ use ConvenientService::Plugins::Internals::HasCache::Concern if options.enabled?(:per_instance_caching)
329
+ end
198
330
  end
199
331
  end
200
332
 
201
- if Dependencies.rspec.loaded?
333
+ entity :Step do
202
334
  concerns do
203
- unshift ConvenientService::Plugins::Service::CanHaveStubbedResults::Concern
335
+ use ConvenientService::Plugins::Common::HasInternals::Concern if options.enabled?(:essential)
336
+ use ConvenientService::Plugins::Step::HasResult::Concern if options.enabled?(:essential)
337
+ use ConvenientService::Plugins::Step::CanBeCompleted::Concern if options.enabled?(:essential)
338
+ use ConvenientService::Plugins::Step::CanBeServiceStep::Concern if options.enabled?(:essential)
339
+ use ConvenientService::Plugins::Step::CanBeMethodStep::Concern if options.enabled?(:essential)
340
+ use ConvenientService::Plugins::Common::CanHaveCallbacks::Concern if options.enabled?(:callbacks)
341
+ use ConvenientService::Plugins::Step::CanHaveFallbacks::Concern if options.enabled?(:fallbacks)
342
+ use ConvenientService::Plugins::Step::HasInspect::Concern if options.enabled?(:inspect)
343
+ use ConvenientService::Plugins::Step::HasAwesomePrintInspect::Concern if options.enabled?(:awesome_print_inspect)
344
+ use ConvenientService::Plugins::Step::HasAmazingPrintInspect::Concern if options.enabled?(:amazing_print_inspect)
345
+ use ConvenientService::Plugins::Common::HasJSendResultDuckShortSyntax::Concern if options.enabled?(:short_syntax)
204
346
  end
205
347
 
206
348
  middlewares :result do
207
- unshift ConvenientService::Plugins::Service::CanHaveStubbedResults::Middleware
208
-
209
- insert_before \
210
- ConvenientService::Plugins::Service::CanHaveStubbedResults::Middleware,
211
- ConvenientService::Plugins::Service::CountsStubbedResultsInvocations::Middleware
349
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
350
+ use ConvenientService::Plugins::Common::CanHaveCallbacks::Middleware if options.enabled?(:callbacks)
351
+ use ConvenientService::Plugins::Step::HasResult::Middleware if options.enabled?(:essential)
352
+ use ConvenientService::Plugins::Step::CanHaveParentResult::Middleware if options.enabled?(:result_parents_trace)
353
+ use ConvenientService::Plugins::Step::CanHaveFallbacks::Middleware.with(fallback_true_status: :failure) if options.enabled?(:fallbacks)
354
+ use ConvenientService::Plugins::Step::RaisesOnNotResultReturnValue::Middleware if options.enabled?(:type_safety)
355
+ use ConvenientService::Plugins::Step::CanBeServiceStep::Middleware if options.enabled?(:essential)
356
+ use ConvenientService::Plugins::Step::CanBeMethodStep::Middleware if options.enabled?(:essential)
212
357
  end
213
358
 
214
- middlewares :result, scope: :class do
215
- unshift ConvenientService::Plugins::Service::CanHaveStubbedResults::Middleware
359
+ middlewares :method_result do
360
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
361
+ end
216
362
 
217
- insert_before \
218
- ConvenientService::Plugins::Service::CanHaveStubbedResults::Middleware,
219
- ConvenientService::Plugins::Service::CountsStubbedResultsInvocations::Middleware
363
+ middlewares :service_result do
364
+ use ConvenientService::Plugins::Common::CachesReturnValue::Middleware if options.enabled?(:per_instance_caching)
220
365
  end
221
366
 
222
- class self::Result
367
+ entity :Internals do
223
368
  concerns do
224
- use ConvenientService::Plugins::Result::CanBeStubbedResult::Concern
225
- use ConvenientService::Plugins::Result::HasStubbedResultInvocationsCounter::Concern
369
+ use ConvenientService::Plugins::Internals::HasCache::Concern if options.enabled?(:per_instance_caching)
226
370
  end
371
+ end
372
+ end
227
373
 
228
- middlewares :initialize do
229
- insert_before \
230
- ConvenientService::Plugins::Result::HasJSendStatusAndAttributes::Middleware,
231
- ConvenientService::Plugins::Result::HasStubbedResultInvocationsCounter::Middleware
232
- end
374
+ entity :Internals do
375
+ concerns do
376
+ use ConvenientService::Plugins::Internals::HasCache::Concern if options.enabled?(:per_instance_caching)
233
377
  end
234
378
  end
379
+
380
+ ##
381
+ # TODO: Rewrite. This plugin does NOT do what it states. Probably I was NOT with a clear mind while writing it (facepalm).
382
+ #
383
+ # middlewares :result do
384
+ # use ConvenientService::Plugins::Service::RaisesOnDoubleResult::Middleware
385
+ # end
386
+ end
387
+
388
+ class << self
389
+ ##
390
+ # Checks whether a class is a service class.
391
+ #
392
+ # @api public
393
+ #
394
+ # @param service_class [Object] Can be any type.
395
+ # @return [Boolean]
396
+ #
397
+ # @example Simple usage.
398
+ # class Service
399
+ # include ConvenientService::Standard::Config
400
+ #
401
+ # def result
402
+ # success
403
+ # end
404
+ # end
405
+ #
406
+ # ConvenientService::Service::Configs::Standard.service_class?(Service)
407
+ # # => true
408
+ #
409
+ # ConvenientService::Service::Configs::Standard.service_class?(Service.new)
410
+ # # => false
411
+ #
412
+ # ConvenientService::Service::Configs::Standard.service_class?(42)
413
+ # # => false
414
+ #
415
+ def service_class?(service_class)
416
+ return false unless service_class.instance_of?(::Class)
417
+
418
+ service_class.include?(Service::Core)
419
+ end
420
+
421
+ ##
422
+ # Checks whether an object is a service instance.
423
+ #
424
+ # @api public
425
+ #
426
+ # @param service [Object] Can be any type.
427
+ # @return [Boolean]
428
+ #
429
+ # @example Simple usage.
430
+ # class Service
431
+ # include ConvenientService::Standard::Config
432
+ #
433
+ # def result
434
+ # success
435
+ # end
436
+ # end
437
+ #
438
+ # ConvenientService::Service::Configs::Standard.service?(Service.new)
439
+ # # => true
440
+ #
441
+ # ConvenientService::Service::Configs::Standard.service?(Service)
442
+ # # => false
443
+ #
444
+ # ConvenientService::Service::Configs::Standard.service?(42)
445
+ # # => false
446
+ #
447
+ def service?(service)
448
+ service_class?(service.class)
449
+ end
235
450
  end
236
- # rubocop:enable Lint/ConstantDefinitionInBlock
237
451
  end
238
452
  end
239
453
  end
@@ -1,6 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "configs/essential"
3
+ ##
4
+ # @author Marian Kostyk <mariankostyk13895@gmail.com>
5
+ # @license LGPLv3 <https://www.gnu.org/licenses/lgpl-3.0.html>
6
+ ##
7
+
4
8
  require_relative "configs/standard"
5
9
 
6
10
  require_relative "configs/aliases"
@@ -0,0 +1,57 @@
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 Core
11
+ include Support::Concern
12
+
13
+ included do
14
+ include ::ConvenientService::Core
15
+ end
16
+
17
+ instance_methods do
18
+ ##
19
+ # Returns string representation of service.
20
+ #
21
+ # @api public
22
+ # @since 1.0.0
23
+ #
24
+ # @param format [Symbol]
25
+ # @return [String]
26
+ #
27
+ # @note Intended to be used for debugging purposes.
28
+ #
29
+ # @example Common usage.
30
+ # class Service
31
+ # include ConvenientService::Standard::Config
32
+ #
33
+ # def result
34
+ # success
35
+ # end
36
+ # end
37
+ #
38
+ # puts Service.new
39
+ # # <Service>
40
+ # # => nil
41
+ #
42
+ # Service.new.to_s
43
+ # # => "<Service>"
44
+ #
45
+ # Service.new.to_s(format: :inspect)
46
+ # # => "<Service>"
47
+ #
48
+ # Service.new.to_s(format: :original)
49
+ # # => "#<Service:0x00005639cd363000>"
50
+ #
51
+ def to_s(format: :inspect)
52
+ (format == :inspect) ? inspect : super()
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end