convenient_service 0.17.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (492) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -7
  3. data/lib/convenient_service/commands/is_service.rb +28 -0
  4. data/lib/convenient_service/commands/is_service_class.rb +30 -0
  5. data/lib/convenient_service/commands.rb +4 -0
  6. data/lib/convenient_service/common/plugins/ensures_negated_j_send_result/middleware.rb +22 -0
  7. data/lib/convenient_service/common/plugins/ensures_negated_j_send_result.rb +3 -0
  8. data/lib/convenient_service/common/plugins/has_around_callbacks/concern.rb +8 -1
  9. data/lib/convenient_service/common/plugins/has_around_callbacks/middleware.rb +28 -7
  10. data/lib/convenient_service/common/plugins/has_callbacks/concern.rb +19 -9
  11. data/lib/convenient_service/common/plugins/has_callbacks/entities/callback_collection.rb +49 -1
  12. data/lib/convenient_service/common/plugins/has_callbacks/middleware.rb +21 -3
  13. data/lib/convenient_service/common/plugins/has_callbacks.rb +0 -1
  14. data/lib/convenient_service/common/plugins/has_instance_proxy/entities/instance_proxy.rb +1 -1
  15. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/has_cache/concern.rb +12 -0
  16. data/lib/convenient_service/common/plugins.rb +3 -3
  17. data/lib/convenient_service/core/concern/class_methods.rb +3 -0
  18. data/lib/convenient_service/core/entities/config/entities/concerns/entities/stack.rb +22 -0
  19. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/concern/instance_methods.rb +1 -1
  20. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creators/observable/entities/event.rb +13 -15
  21. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/commands/normalize_env.rb +55 -0
  22. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/commands.rb +1 -0
  23. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/chain/concern/instance_methods.rb +3 -3
  24. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middlewares/classic.rb +14 -0
  25. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/stack.rb +22 -0
  26. data/lib/convenient_service/core/entities/config/exceptions.rb +2 -0
  27. data/lib/convenient_service/core/entities/config.rb +3 -0
  28. data/lib/convenient_service/dependencies/built_in.rb +0 -7
  29. data/lib/convenient_service/dependencies/extractions/ds.rb +45 -0
  30. data/lib/convenient_service/dependencies/only_queries.rb +29 -0
  31. data/lib/convenient_service/dependencies/queries/gems/active_model.rb +38 -0
  32. data/lib/convenient_service/dependencies/queries/gems/logger.rb +39 -0
  33. data/lib/convenient_service/dependencies/queries/gems/paint.rb +39 -0
  34. data/lib/convenient_service/dependencies/queries/gems/rspec.rb +60 -0
  35. data/lib/convenient_service/dependencies/queries/ruby.rb +103 -0
  36. data/lib/convenient_service/dependencies/queries/version/null_version.rb +87 -0
  37. data/lib/convenient_service/dependencies/queries/version.rb +87 -0
  38. data/lib/convenient_service/dependencies/queries.rb +536 -0
  39. data/lib/convenient_service/dependencies.rb +2 -430
  40. data/lib/convenient_service/feature/configs/standard.rb +0 -2
  41. data/lib/convenient_service/logger.rb +9 -1
  42. data/lib/convenient_service/rspec/matchers/classes/call_chain_next.rb +41 -0
  43. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/commands/generate_printable_method.rb +46 -0
  44. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/delegation.rb +89 -0
  45. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb +223 -0
  46. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/outputs.rb +38 -0
  47. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matcher_collection.rb +157 -0
  48. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/arguments/commands/apply_stub_to_track_delegations.rb +77 -0
  49. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/arguments/commands/generate_printable_arguments.rb +94 -0
  50. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/arguments.rb +89 -0
  51. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/base.rb +99 -0
  52. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/return_custom_value.rb +91 -0
  53. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/return_delegation_value.rb +129 -0
  54. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/with_any_arguments.rb +31 -0
  55. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/with_concrete_arguments.rb +31 -0
  56. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/without_arguments.rb +31 -0
  57. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers.rb +11 -0
  58. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities.rb +5 -1
  59. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/exceptions.rb +65 -0
  60. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to.rb +163 -41
  61. data/lib/convenient_service/service/configs/amazing_print_inspect/aliases.rb +7 -0
  62. data/lib/convenient_service/service/configs/amazing_print_inspect.rb +61 -0
  63. data/lib/convenient_service/service/configs/awesome_print_inspect.rb +1 -1
  64. data/lib/convenient_service/service/configs/{minimal.rb → essential.rb} +40 -93
  65. data/lib/convenient_service/service/configs/standard/v1.rb +47 -34
  66. data/lib/convenient_service/service/configs/standard.rb +70 -68
  67. data/lib/convenient_service/service/configs.rb +1 -1
  68. data/lib/convenient_service/service/plugins/can_have_connected_steps/concern.rb +503 -0
  69. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/and.rb +136 -0
  70. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/base.rb +126 -0
  71. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/empty.rb +104 -0
  72. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/group.rb +118 -0
  73. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/not.rb +118 -0
  74. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb +145 -0
  75. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/scalar.rb +133 -0
  76. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions.rb +10 -0
  77. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/step_collection.rb +224 -0
  78. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities.rb +4 -0
  79. data/lib/convenient_service/service/plugins/can_have_connected_steps/exceptions.rb +95 -0
  80. data/lib/convenient_service/service/plugins/can_have_connected_steps/middleware.rb +30 -0
  81. data/lib/convenient_service/service/plugins/can_have_connected_steps.rb +6 -0
  82. data/lib/convenient_service/service/plugins/can_have_fallbacks/concern.rb +18 -0
  83. data/lib/convenient_service/service/plugins/can_have_fallbacks/exceptions.rb +22 -4
  84. data/lib/convenient_service/service/plugins/can_have_fallbacks/middleware.rb +3 -3
  85. data/lib/convenient_service/service/plugins/can_have_rollbacks/middleware.rb +66 -0
  86. data/lib/convenient_service/service/plugins/can_have_rollbacks.rb +3 -0
  87. data/lib/convenient_service/service/plugins/can_have_sequential_steps/concern.rb +76 -0
  88. data/lib/convenient_service/service/plugins/{can_have_steps → can_have_sequential_steps}/entities/step_collection.rb +61 -10
  89. data/lib/convenient_service/service/plugins/can_have_sequential_steps/entities.rb +3 -0
  90. data/lib/convenient_service/service/plugins/{can_have_steps → can_have_sequential_steps}/middleware.rb +7 -3
  91. data/lib/convenient_service/service/plugins/can_have_sequential_steps.rb +5 -0
  92. data/lib/convenient_service/service/plugins/can_have_steps/commands/is_step.rb +34 -0
  93. data/lib/convenient_service/service/plugins/can_have_steps/commands.rb +1 -0
  94. data/lib/convenient_service/service/plugins/can_have_steps/concern.rb +4 -57
  95. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb +45 -26
  96. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/reassignment.rb +0 -2
  97. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/exceptions.rb +4 -24
  98. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern/instance_methods.rb +166 -83
  99. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/exceptions.rb +19 -0
  100. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/{can_be_result_step → can_be_method_step}/can_be_executed/exceptions.rb +1 -1
  101. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/can_be_executed/middleware.rb +52 -6
  102. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/can_be_executed.rb +1 -0
  103. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/concern.rb +7 -0
  104. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_alternative_steps.rb +3 -0
  105. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/concern.rb +0 -46
  106. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/exceptions.rb +53 -0
  107. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/middleware.rb +75 -6
  108. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks.rb +1 -0
  109. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_parent_result/middleware.rb +13 -1
  110. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_amazing_print_inspect/concern.rb +46 -0
  111. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_amazing_print_inspect.rb +3 -0
  112. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_awesome_print_inspect/concern.rb +3 -2
  113. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/concern.rb +34 -0
  114. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/middleware.rb +58 -0
  115. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result.rb +4 -0
  116. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins.rb +2 -1
  117. data/lib/convenient_service/service/plugins/can_have_steps/entities.rb +0 -1
  118. data/lib/convenient_service/service/plugins/can_have_steps.rb +41 -1
  119. data/lib/convenient_service/service/plugins/can_have_stubbed_results/commands/fetch_all_services_stubbed_results_cache.rb +2 -2
  120. data/lib/convenient_service/service/plugins/forbids_convenient_service_entities_as_constructor_arguments/exceptions.rb +53 -0
  121. data/lib/convenient_service/service/plugins/forbids_convenient_service_entities_as_constructor_arguments/middleware.rb +108 -0
  122. data/lib/convenient_service/service/plugins/forbids_convenient_service_entities_as_constructor_arguments.rb +4 -0
  123. data/lib/convenient_service/service/plugins/has_amazing_print_inspect/concern.rb +39 -0
  124. data/lib/convenient_service/service/plugins/has_amazing_print_inspect.rb +3 -0
  125. data/lib/convenient_service/service/plugins/{can_have_steps/entities/step/plugins/can_be_result_step → has_j_send_result/entities/result/plugins/can_be_from_exception}/concern.rb +7 -5
  126. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_be_from_exception.rb +3 -0
  127. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status/concern.rb +2 -2
  128. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status.rb +0 -1
  129. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_step/concern.rb +7 -0
  130. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_amazing_print_inspect/concern.rb +41 -0
  131. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_amazing_print_inspect.rb +3 -0
  132. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_awesome_print_inspect/concern.rb +2 -2
  133. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/concern/instance_methods.rb +0 -7
  134. 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 +46 -0
  135. 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 +3 -0
  136. 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 +46 -0
  137. 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 +3 -0
  138. 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 +46 -0
  139. 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 +3 -0
  140. 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 +45 -17
  141. 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 +38 -0
  142. 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 +51 -0
  143. 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 +4 -0
  144. 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 +46 -0
  145. 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 +3 -0
  146. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/plugins.rb +1 -0
  147. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/exceptions.rb +15 -0
  148. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_negated_result/concern.rb +72 -0
  149. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_negated_result.rb +3 -0
  150. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects/concern/instance_methods.rb +161 -0
  151. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects/concern.rb +27 -0
  152. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects/exceptions.rb +34 -0
  153. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/helps_to_learn_similarities_with_common_objects.rb +4 -0
  154. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/raises_on_not_checked_result_status/middleware.rb +1 -1
  155. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins.rb +3 -0
  156. data/lib/convenient_service/service/plugins/has_j_send_result.rb +0 -1
  157. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/middleware.rb +4 -0
  158. data/lib/convenient_service/service/plugins/has_mermaid_flowchart/concern.rb +6 -1
  159. data/lib/convenient_service/service/plugins/has_negated_j_send_result/concern.rb +23 -0
  160. data/lib/convenient_service/service/plugins/has_negated_j_send_result.rb +3 -0
  161. data/lib/convenient_service/service/plugins/has_negated_result/concern.rb +33 -0
  162. data/lib/convenient_service/service/plugins/{has_j_send_result → has_negated_result}/exceptions.rb +3 -3
  163. data/lib/convenient_service/service/plugins/has_negated_result.rb +4 -0
  164. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/middleware.rb +1 -0
  165. data/lib/convenient_service/service/plugins/{wraps_result_in_db_transaction → wraps_result_in_d_b_transaction}/middleware.rb +1 -1
  166. data/lib/convenient_service/service/plugins.rb +10 -3
  167. data/lib/convenient_service/specification.rb +28 -0
  168. data/lib/convenient_service/support/backtrace_cleaner.rb +6 -1
  169. data/lib/convenient_service/support/cache/entities/caches/base.rb +3 -0
  170. data/lib/convenient_service/support/counter.rb +2 -0
  171. data/lib/convenient_service/support/method_parameters.rb +121 -0
  172. data/lib/convenient_service/support/middleware/stack_builder.rb +37 -0
  173. data/lib/convenient_service/support/never_reach_here.rb +21 -0
  174. data/lib/convenient_service/support/thread_safe_counter.rb +1 -0
  175. data/lib/convenient_service/support/unique_value.rb +3 -0
  176. data/lib/convenient_service/support/value.rb +78 -0
  177. data/lib/convenient_service/support.rb +3 -3
  178. data/lib/convenient_service/utils/array/find_last.rb +8 -3
  179. data/lib/convenient_service/utils/object/get_own_method.rb +54 -0
  180. data/lib/convenient_service/utils/object/instance_variable_delete.rb +1 -1
  181. data/lib/convenient_service/utils/object/safe_send.rb +84 -0
  182. data/lib/convenient_service/utils/object.rb +24 -0
  183. data/lib/convenient_service/utils/string/enclose.rb +52 -0
  184. data/lib/convenient_service/utils/string.rb +5 -0
  185. data/lib/convenient_service/version.rb +1 -1
  186. data/lib/convenient_service.rb +85 -0
  187. metadata +256 -322
  188. data/.dev/.tmuxinator.yml +0 -22
  189. data/.dockerignore +0 -1
  190. data/.gem_release.yml +0 -11
  191. data/.github/contributing.md +0 -15
  192. data/.github/issue_template.md +0 -35
  193. data/.github/pull_request_template.md +0 -31
  194. data/.github/workflows/cd.yml +0 -68
  195. data/.github/workflows/ci.yml +0 -212
  196. data/.gitignore +0 -66
  197. data/.inch.yml +0 -7
  198. data/.rspec +0 -3
  199. data/.rubocop.yml +0 -45
  200. data/.rubocop_rspec.yml +0 -58
  201. data/.ruby-version +0 -1
  202. data/.tool-versions +0 -1
  203. data/.vscode/CacheItsValue.code-snippets +0 -15
  204. data/.vscode/DelegateTo.code-snippets +0 -15
  205. data/.vscode/cache_its_value.code-snippets +0 -17
  206. data/.vscode/comparison.code-snippets +0 -41
  207. data/.vscode/delegate_to.code-snippets +0 -20
  208. data/.yardopts +0 -16
  209. data/Appraisals +0 -146
  210. data/CHANGELOG.md +0 -504
  211. data/Gemfile +0 -17
  212. data/ROADMAP.md +0 -92
  213. data/Rakefile +0 -54
  214. data/Taskfile.yml +0 -679
  215. data/benchmark/commit_config/ips.rb +0 -18
  216. data/benchmark/commit_config/profile.rb +0 -30
  217. data/benchmark/empty_service/ips.rb +0 -123
  218. data/benchmark/has_committed_config/ips.rb +0 -78
  219. data/benchmark/has_committed_config/profile.rb +0 -30
  220. data/convenient_service.gemspec +0 -233
  221. data/coverage/.gitkeep +0 -0
  222. data/docker/2.7/Dockerfile +0 -73
  223. data/docker/3.0/Dockerfile +0 -73
  224. data/docker/3.1/Dockerfile +0 -73
  225. data/docker/3.2/Dockerfile +0 -73
  226. data/docker/jruby-9.4/Dockerfile +0 -88
  227. data/docker/truffleruby-22.3/Dockerfile +0 -91
  228. data/docs/.gitkeep +0 -0
  229. data/docs/api/.gitkeep +0 -0
  230. data/env.rb +0 -23
  231. data/gemfiles/.gitkeep +0 -0
  232. data/lib/convenient_service/common/plugins/has_callbacks/container.rb +0 -17
  233. data/lib/convenient_service/common/plugins/normalizes_env/middleware.rb +0 -31
  234. data/lib/convenient_service/common/plugins/normalizes_env.rb +0 -3
  235. data/lib/convenient_service/examples/dry/gemfile/dry_service/config.rb +0 -45
  236. data/lib/convenient_service/examples/dry/gemfile/dry_service.rb +0 -3
  237. data/lib/convenient_service/examples/dry/gemfile/services/assert_file_exists.rb +0 -29
  238. data/lib/convenient_service/examples/dry/gemfile/services/assert_file_not_empty.rb +0 -29
  239. data/lib/convenient_service/examples/dry/gemfile/services/assert_node_available.rb +0 -26
  240. data/lib/convenient_service/examples/dry/gemfile/services/assert_npm_package_available.rb +0 -39
  241. data/lib/convenient_service/examples/dry/gemfile/services/assert_valid_ruby_syntax.rb +0 -41
  242. data/lib/convenient_service/examples/dry/gemfile/services/format.rb +0 -37
  243. data/lib/convenient_service/examples/dry/gemfile/services/format_body.rb +0 -93
  244. data/lib/convenient_service/examples/dry/gemfile/services/format_gems_with_envs.rb +0 -96
  245. data/lib/convenient_service/examples/dry/gemfile/services/format_gems_without_envs.rb +0 -84
  246. data/lib/convenient_service/examples/dry/gemfile/services/format_header.rb +0 -74
  247. data/lib/convenient_service/examples/dry/gemfile/services/parse_content.rb +0 -93
  248. data/lib/convenient_service/examples/dry/gemfile/services/print_shell_command.rb +0 -44
  249. data/lib/convenient_service/examples/dry/gemfile/services/read_file_content.rb +0 -31
  250. data/lib/convenient_service/examples/dry/gemfile/services/run_shell_command.rb +0 -45
  251. data/lib/convenient_service/examples/dry/gemfile/services/strip_comments.rb +0 -109
  252. data/lib/convenient_service/examples/dry/gemfile/services.rb +0 -18
  253. data/lib/convenient_service/examples/dry/gemfile.rb +0 -27
  254. data/lib/convenient_service/examples/dry/v1/gemfile/dry_service/config.rb +0 -47
  255. data/lib/convenient_service/examples/dry/v1/gemfile/dry_service.rb +0 -3
  256. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_file_exists.rb +0 -31
  257. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_file_not_empty.rb +0 -31
  258. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_node_available.rb +0 -28
  259. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_npm_package_available.rb +0 -41
  260. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_valid_ruby_syntax.rb +0 -43
  261. data/lib/convenient_service/examples/dry/v1/gemfile/services/format.rb +0 -39
  262. data/lib/convenient_service/examples/dry/v1/gemfile/services/format_body.rb +0 -95
  263. data/lib/convenient_service/examples/dry/v1/gemfile/services/format_gems_with_envs.rb +0 -98
  264. data/lib/convenient_service/examples/dry/v1/gemfile/services/format_gems_without_envs.rb +0 -86
  265. data/lib/convenient_service/examples/dry/v1/gemfile/services/format_header.rb +0 -76
  266. data/lib/convenient_service/examples/dry/v1/gemfile/services/parse_content.rb +0 -95
  267. data/lib/convenient_service/examples/dry/v1/gemfile/services/read_file_content.rb +0 -33
  268. data/lib/convenient_service/examples/dry/v1/gemfile/services/run_shell_command.rb +0 -43
  269. data/lib/convenient_service/examples/dry/v1/gemfile/services/strip_comments.rb +0 -111
  270. data/lib/convenient_service/examples/dry/v1/gemfile/services.rb +0 -17
  271. data/lib/convenient_service/examples/dry/v1/gemfile.rb +0 -29
  272. data/lib/convenient_service/examples/rails/gemfile/rails_service/config.rb +0 -56
  273. data/lib/convenient_service/examples/rails/gemfile/rails_service.rb +0 -3
  274. data/lib/convenient_service/examples/rails/gemfile/services/assert_file_exists.rb +0 -25
  275. data/lib/convenient_service/examples/rails/gemfile/services/assert_file_not_empty.rb +0 -25
  276. data/lib/convenient_service/examples/rails/gemfile/services/assert_node_available.rb +0 -26
  277. data/lib/convenient_service/examples/rails/gemfile/services/assert_npm_package_available.rb +0 -35
  278. data/lib/convenient_service/examples/rails/gemfile/services/assert_valid_ruby_syntax.rb +0 -35
  279. data/lib/convenient_service/examples/rails/gemfile/services/format.rb +0 -66
  280. data/lib/convenient_service/examples/rails/gemfile/services/format_body.rb +0 -79
  281. data/lib/convenient_service/examples/rails/gemfile/services/format_gems_with_envs.rb +0 -82
  282. data/lib/convenient_service/examples/rails/gemfile/services/format_gems_without_envs.rb +0 -70
  283. data/lib/convenient_service/examples/rails/gemfile/services/format_header.rb +0 -68
  284. data/lib/convenient_service/examples/rails/gemfile/services/merge_sections.rb +0 -25
  285. data/lib/convenient_service/examples/rails/gemfile/services/parse_content.rb +0 -89
  286. data/lib/convenient_service/examples/rails/gemfile/services/print_shell_command.rb +0 -40
  287. data/lib/convenient_service/examples/rails/gemfile/services/read_file_content.rb +0 -27
  288. data/lib/convenient_service/examples/rails/gemfile/services/replace_file_content.rb +0 -37
  289. data/lib/convenient_service/examples/rails/gemfile/services/run_shell_command.rb +0 -40
  290. data/lib/convenient_service/examples/rails/gemfile/services/strip_comments.rb +0 -107
  291. data/lib/convenient_service/examples/rails/gemfile/services.rb +0 -21
  292. data/lib/convenient_service/examples/rails/gemfile.rb +0 -27
  293. data/lib/convenient_service/examples/rails/v1/gemfile/rails_service/config.rb +0 -58
  294. data/lib/convenient_service/examples/rails/v1/gemfile/rails_service.rb +0 -3
  295. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_file_exists.rb +0 -27
  296. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_file_not_empty.rb +0 -27
  297. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_node_available.rb +0 -28
  298. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_npm_package_available.rb +0 -37
  299. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_valid_ruby_syntax.rb +0 -37
  300. data/lib/convenient_service/examples/rails/v1/gemfile/services/format.rb +0 -68
  301. data/lib/convenient_service/examples/rails/v1/gemfile/services/format_body.rb +0 -81
  302. data/lib/convenient_service/examples/rails/v1/gemfile/services/format_gems_with_envs.rb +0 -84
  303. data/lib/convenient_service/examples/rails/v1/gemfile/services/format_gems_without_envs.rb +0 -72
  304. data/lib/convenient_service/examples/rails/v1/gemfile/services/format_header.rb +0 -70
  305. data/lib/convenient_service/examples/rails/v1/gemfile/services/merge_sections.rb +0 -27
  306. data/lib/convenient_service/examples/rails/v1/gemfile/services/parse_content.rb +0 -91
  307. data/lib/convenient_service/examples/rails/v1/gemfile/services/read_file_content.rb +0 -29
  308. data/lib/convenient_service/examples/rails/v1/gemfile/services/replace_file_content.rb +0 -39
  309. data/lib/convenient_service/examples/rails/v1/gemfile/services/run_shell_command.rb +0 -38
  310. data/lib/convenient_service/examples/rails/v1/gemfile/services/strip_comments.rb +0 -109
  311. data/lib/convenient_service/examples/rails/v1/gemfile/services.rb +0 -20
  312. data/lib/convenient_service/examples/rails/v1/gemfile.rb +0 -29
  313. data/lib/convenient_service/examples/standard/cowsay/services/build_cloud.rb +0 -42
  314. data/lib/convenient_service/examples/standard/cowsay/services/build_cow.rb +0 -38
  315. data/lib/convenient_service/examples/standard/cowsay/services/print.rb +0 -32
  316. data/lib/convenient_service/examples/standard/cowsay/services.rb +0 -5
  317. data/lib/convenient_service/examples/standard/cowsay.rb +0 -26
  318. data/lib/convenient_service/examples/standard/date_time/services/safe_parse.rb +0 -31
  319. data/lib/convenient_service/examples/standard/date_time/services.rb +0 -3
  320. data/lib/convenient_service/examples/standard/date_time.rb +0 -25
  321. data/lib/convenient_service/examples/standard/factorial/services/calculate.rb +0 -55
  322. data/lib/convenient_service/examples/standard/factorial/services.rb +0 -3
  323. data/lib/convenient_service/examples/standard/factorial/utils/timeout/with_timeout.rb +0 -50
  324. data/lib/convenient_service/examples/standard/factorial/utils/timeout.rb +0 -21
  325. data/lib/convenient_service/examples/standard/factorial/utils.rb +0 -3
  326. data/lib/convenient_service/examples/standard/factorial.rb +0 -26
  327. data/lib/convenient_service/examples/standard/gemfile/services/assert_file_exists.rb +0 -30
  328. data/lib/convenient_service/examples/standard/gemfile/services/assert_file_not_empty.rb +0 -30
  329. data/lib/convenient_service/examples/standard/gemfile/services/assert_node_available.rb +0 -26
  330. data/lib/convenient_service/examples/standard/gemfile/services/assert_npm_package_available.rb +0 -48
  331. data/lib/convenient_service/examples/standard/gemfile/services/assert_valid_ruby_syntax.rb +0 -39
  332. data/lib/convenient_service/examples/standard/gemfile/services/format.rb +0 -80
  333. data/lib/convenient_service/examples/standard/gemfile/services/format_body.rb +0 -83
  334. data/lib/convenient_service/examples/standard/gemfile/services/format_gems_with_envs.rb +0 -86
  335. data/lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb +0 -74
  336. data/lib/convenient_service/examples/standard/gemfile/services/format_header.rb +0 -66
  337. data/lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb +0 -52
  338. data/lib/convenient_service/examples/standard/gemfile/services/parse_content.rb +0 -101
  339. data/lib/convenient_service/examples/standard/gemfile/services/print_shell_command.rb +0 -45
  340. data/lib/convenient_service/examples/standard/gemfile/services/read_file_content.rb +0 -39
  341. data/lib/convenient_service/examples/standard/gemfile/services/replace_file_content.rb +0 -48
  342. data/lib/convenient_service/examples/standard/gemfile/services/run_shell_command.rb +0 -54
  343. data/lib/convenient_service/examples/standard/gemfile/services/strip_comments.rb +0 -111
  344. data/lib/convenient_service/examples/standard/gemfile/services.rb +0 -21
  345. data/lib/convenient_service/examples/standard/gemfile.rb +0 -26
  346. data/lib/convenient_service/examples/standard/request_params/constants.rb +0 -15
  347. data/lib/convenient_service/examples/standard/request_params/entities/description.rb +0 -40
  348. data/lib/convenient_service/examples/standard/request_params/entities/format.rb +0 -40
  349. data/lib/convenient_service/examples/standard/request_params/entities/id.rb +0 -47
  350. data/lib/convenient_service/examples/standard/request_params/entities/logger.rb +0 -21
  351. data/lib/convenient_service/examples/standard/request_params/entities/request.rb +0 -23
  352. data/lib/convenient_service/examples/standard/request_params/entities/source.rb +0 -40
  353. data/lib/convenient_service/examples/standard/request_params/entities/tag.rb +0 -40
  354. data/lib/convenient_service/examples/standard/request_params/entities/title.rb +0 -40
  355. data/lib/convenient_service/examples/standard/request_params/entities.rb +0 -11
  356. data/lib/convenient_service/examples/standard/request_params/services/apply_default_param_values.rb +0 -26
  357. data/lib/convenient_service/examples/standard/request_params/services/cast_params.rb +0 -38
  358. data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_body.rb +0 -70
  359. data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_path.rb +0 -62
  360. data/lib/convenient_service/examples/standard/request_params/services/filter_out_unpermitted_params.rb +0 -26
  361. data/lib/convenient_service/examples/standard/request_params/services/log_request_params.rb +0 -54
  362. data/lib/convenient_service/examples/standard/request_params/services/merge_params.rb +0 -26
  363. data/lib/convenient_service/examples/standard/request_params/services/prepare.rb +0 -65
  364. data/lib/convenient_service/examples/standard/request_params/services/validate_casted_params.rb +0 -94
  365. data/lib/convenient_service/examples/standard/request_params/services/validate_uncasted_params.rb +0 -72
  366. data/lib/convenient_service/examples/standard/request_params/services.rb +0 -13
  367. data/lib/convenient_service/examples/standard/request_params/utils/array/wrap.rb +0 -46
  368. data/lib/convenient_service/examples/standard/request_params/utils/array.rb +0 -21
  369. data/lib/convenient_service/examples/standard/request_params/utils/http/request/parse_body.rb +0 -42
  370. data/lib/convenient_service/examples/standard/request_params/utils/http/request/parse_path.rb +0 -40
  371. data/lib/convenient_service/examples/standard/request_params/utils/http/request.rb +0 -28
  372. data/lib/convenient_service/examples/standard/request_params/utils/http.rb +0 -3
  373. data/lib/convenient_service/examples/standard/request_params/utils/integer/safe_parse.rb +0 -31
  374. data/lib/convenient_service/examples/standard/request_params/utils/integer.rb +0 -25
  375. data/lib/convenient_service/examples/standard/request_params/utils/json/safe_parse.rb +0 -40
  376. data/lib/convenient_service/examples/standard/request_params/utils/json.rb +0 -21
  377. data/lib/convenient_service/examples/standard/request_params/utils/object/blank.rb +0 -34
  378. data/lib/convenient_service/examples/standard/request_params/utils/object/present.rb +0 -31
  379. data/lib/convenient_service/examples/standard/request_params/utils/object.rb +0 -26
  380. data/lib/convenient_service/examples/standard/request_params/utils/url/valid.rb +0 -47
  381. data/lib/convenient_service/examples/standard/request_params/utils/url.rb +0 -21
  382. data/lib/convenient_service/examples/standard/request_params/utils.rb +0 -8
  383. data/lib/convenient_service/examples/standard/request_params.rb +0 -49
  384. data/lib/convenient_service/examples/standard/v1/cowsay/services/build_cloud.rb +0 -44
  385. data/lib/convenient_service/examples/standard/v1/cowsay/services/build_cow.rb +0 -40
  386. data/lib/convenient_service/examples/standard/v1/cowsay/services/print.rb +0 -34
  387. data/lib/convenient_service/examples/standard/v1/cowsay/services.rb +0 -5
  388. data/lib/convenient_service/examples/standard/v1/cowsay.rb +0 -26
  389. data/lib/convenient_service/examples/standard/v1/date_time/services/safe_parse.rb +0 -33
  390. data/lib/convenient_service/examples/standard/v1/date_time/services.rb +0 -3
  391. data/lib/convenient_service/examples/standard/v1/date_time.rb +0 -25
  392. data/lib/convenient_service/examples/standard/v1/factorial/services/calculate.rb +0 -51
  393. data/lib/convenient_service/examples/standard/v1/factorial/services.rb +0 -3
  394. data/lib/convenient_service/examples/standard/v1/factorial/utils/timeout/with_timeout.rb +0 -52
  395. data/lib/convenient_service/examples/standard/v1/factorial/utils/timeout.rb +0 -23
  396. data/lib/convenient_service/examples/standard/v1/factorial/utils.rb +0 -3
  397. data/lib/convenient_service/examples/standard/v1/factorial.rb +0 -26
  398. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_file_exists.rb +0 -32
  399. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_file_not_empty.rb +0 -32
  400. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_node_available.rb +0 -28
  401. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_npm_package_available.rb +0 -50
  402. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_valid_ruby_syntax.rb +0 -41
  403. data/lib/convenient_service/examples/standard/v1/gemfile/services/format.rb +0 -82
  404. data/lib/convenient_service/examples/standard/v1/gemfile/services/format_body.rb +0 -85
  405. data/lib/convenient_service/examples/standard/v1/gemfile/services/format_gems_with_envs.rb +0 -88
  406. data/lib/convenient_service/examples/standard/v1/gemfile/services/format_gems_without_envs.rb +0 -76
  407. data/lib/convenient_service/examples/standard/v1/gemfile/services/format_header.rb +0 -68
  408. data/lib/convenient_service/examples/standard/v1/gemfile/services/merge_sections.rb +0 -54
  409. data/lib/convenient_service/examples/standard/v1/gemfile/services/parse_content.rb +0 -103
  410. data/lib/convenient_service/examples/standard/v1/gemfile/services/read_file_content.rb +0 -41
  411. data/lib/convenient_service/examples/standard/v1/gemfile/services/replace_file_content.rb +0 -50
  412. data/lib/convenient_service/examples/standard/v1/gemfile/services/run_shell_command.rb +0 -52
  413. data/lib/convenient_service/examples/standard/v1/gemfile/services/strip_comments.rb +0 -113
  414. data/lib/convenient_service/examples/standard/v1/gemfile/services.rb +0 -20
  415. data/lib/convenient_service/examples/standard/v1/gemfile.rb +0 -26
  416. data/lib/convenient_service/examples/standard/v1/request_params/constants.rb +0 -17
  417. data/lib/convenient_service/examples/standard/v1/request_params/entities/description.rb +0 -42
  418. data/lib/convenient_service/examples/standard/v1/request_params/entities/format.rb +0 -42
  419. data/lib/convenient_service/examples/standard/v1/request_params/entities/id.rb +0 -49
  420. data/lib/convenient_service/examples/standard/v1/request_params/entities/logger.rb +0 -23
  421. data/lib/convenient_service/examples/standard/v1/request_params/entities/request.rb +0 -25
  422. data/lib/convenient_service/examples/standard/v1/request_params/entities/source.rb +0 -42
  423. data/lib/convenient_service/examples/standard/v1/request_params/entities/tag.rb +0 -42
  424. data/lib/convenient_service/examples/standard/v1/request_params/entities/title.rb +0 -42
  425. data/lib/convenient_service/examples/standard/v1/request_params/entities.rb +0 -11
  426. data/lib/convenient_service/examples/standard/v1/request_params/services/apply_default_param_values.rb +0 -28
  427. data/lib/convenient_service/examples/standard/v1/request_params/services/cast_params.rb +0 -40
  428. data/lib/convenient_service/examples/standard/v1/request_params/services/extract_params_from_body.rb +0 -72
  429. data/lib/convenient_service/examples/standard/v1/request_params/services/extract_params_from_path.rb +0 -64
  430. data/lib/convenient_service/examples/standard/v1/request_params/services/filter_out_unpermitted_params.rb +0 -28
  431. data/lib/convenient_service/examples/standard/v1/request_params/services/log_request_params.rb +0 -56
  432. data/lib/convenient_service/examples/standard/v1/request_params/services/merge_params.rb +0 -28
  433. data/lib/convenient_service/examples/standard/v1/request_params/services/prepare.rb +0 -67
  434. data/lib/convenient_service/examples/standard/v1/request_params/services/validate_casted_params.rb +0 -96
  435. data/lib/convenient_service/examples/standard/v1/request_params/services/validate_uncasted_params.rb +0 -74
  436. data/lib/convenient_service/examples/standard/v1/request_params/services.rb +0 -13
  437. data/lib/convenient_service/examples/standard/v1/request_params/utils/array/wrap.rb +0 -48
  438. data/lib/convenient_service/examples/standard/v1/request_params/utils/array.rb +0 -23
  439. data/lib/convenient_service/examples/standard/v1/request_params/utils/http/request/parse_body.rb +0 -44
  440. data/lib/convenient_service/examples/standard/v1/request_params/utils/http/request/parse_path.rb +0 -42
  441. data/lib/convenient_service/examples/standard/v1/request_params/utils/http/request.rb +0 -30
  442. data/lib/convenient_service/examples/standard/v1/request_params/utils/http.rb +0 -3
  443. data/lib/convenient_service/examples/standard/v1/request_params/utils/integer/safe_parse.rb +0 -33
  444. data/lib/convenient_service/examples/standard/v1/request_params/utils/integer.rb +0 -27
  445. data/lib/convenient_service/examples/standard/v1/request_params/utils/json/safe_parse.rb +0 -42
  446. data/lib/convenient_service/examples/standard/v1/request_params/utils/json.rb +0 -23
  447. data/lib/convenient_service/examples/standard/v1/request_params/utils/object/blank.rb +0 -36
  448. data/lib/convenient_service/examples/standard/v1/request_params/utils/object/present.rb +0 -33
  449. data/lib/convenient_service/examples/standard/v1/request_params/utils/object.rb +0 -28
  450. data/lib/convenient_service/examples/standard/v1/request_params/utils/url/valid.rb +0 -49
  451. data/lib/convenient_service/examples/standard/v1/request_params/utils/url.rb +0 -23
  452. data/lib/convenient_service/examples/standard/v1/request_params/utils.rb +0 -8
  453. data/lib/convenient_service/examples/standard/v1/request_params.rb +0 -49
  454. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/commands/generate_printable_method.rb +0 -50
  455. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments/commands/apply_stub_to_track_delegations.rb +0 -82
  456. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments/commands/generate_printable_arguments.rb +0 -100
  457. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments.rb +0 -95
  458. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/base.rb +0 -87
  459. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/return_its_value.rb +0 -132
  460. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/with_any_arguments.rb +0 -37
  461. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/with_concrete_arguments.rb +0 -37
  462. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/without_arguments.rb +0 -37
  463. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/values/base.rb +0 -41
  464. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/values/with_calling_original.rb +0 -30
  465. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/values/without_calling_original.rb +0 -30
  466. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings.rb +0 -12
  467. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings_collection/exceptions.rb +0 -57
  468. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings_collection.rb +0 -171
  469. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/delegation.rb +0 -79
  470. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities.rb +0 -5
  471. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher.rb +0 -276
  472. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/reassignment/commands/define_method_in_container.rb +0 -74
  473. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/reassignment/commands.rb +0 -3
  474. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_result_step/can_be_executed/middleware.rb +0 -72
  475. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_result_step/can_be_executed.rb +0 -4
  476. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_result_step.rb +0 -5
  477. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/result.rb +0 -3
  478. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status/middleware.rb +0 -43
  479. data/lib/convenient_service/services.rb +0 -4
  480. data/lib/convenient_service/support/gems/active_model.rb +0 -36
  481. data/lib/convenient_service/support/gems/logger.rb +0 -37
  482. data/lib/convenient_service/support/gems/paint.rb +0 -37
  483. data/lib/convenient_service/support/gems/rspec.rb +0 -58
  484. data/lib/convenient_service/support/ruby.rb +0 -53
  485. data/lib/convenient_service/support/version/null_version.rb +0 -85
  486. data/lib/convenient_service/support/version.rb +0 -75
  487. data/logo.png +0 -0
  488. data/minitest.rb +0 -30
  489. data/yard/yard-convenient_service_concern.rb +0 -45
  490. /data/lib/convenient_service/{support → dependencies/queries}/gems.rb +0 -0
  491. /data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/{entities/matcher/commands.rb → commands.rb} +0 -0
  492. /data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/{matcher/entities/chainings/sub_matchers → sub_matchers}/arguments/commands.rb +0 -0
@@ -16,34 +16,9 @@ module ConvenientService
16
16
  include Support::Delegate
17
17
 
18
18
  ##
19
- # @return [Boolean]
20
- #
21
- delegate :success?, to: :result
22
-
23
- ##
24
- # @return [Boolean]
25
- #
26
- delegate :failure?, to: :result
27
-
28
- ##
29
- # @return [Boolean]
30
- #
31
- delegate :error?, to: :result
32
-
33
- ##
34
- # @return [Boolean]
35
- #
36
- delegate :not_success?, to: :result
37
-
38
- ##
39
- # @return [Boolean]
40
- #
41
- delegate :not_failure?, to: :result
42
-
43
- ##
44
- # @return [Boolean]
19
+ # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result::Plugins::HasJSendStatusAndAttributes::Entities::Status]
45
20
  #
46
- delegate :not_error?, to: :result
21
+ delegate :status, to: :result
47
22
 
48
23
  ##
49
24
  # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result::Plugins::HasJSendStatusAndAttributes::Entities::Data]
@@ -107,66 +82,62 @@ module ConvenientService
107
82
  delegate :extra_kwargs, to: :params
108
83
 
109
84
  ##
110
- # @param args [Array<Object>]
111
- # @param kwargs [Hash{Symbol => Object}]
112
- # @return [void]
85
+ # @return [Boolean]
113
86
  #
114
- def initialize(*args, **kwargs)
115
- @args = args
116
- @kwargs = kwargs
117
- end
87
+ delegate :success?, to: :result
118
88
 
119
89
  ##
120
- # @param other [Object] Can be any type.
121
- # @return [Boolean, nil]
122
- #
123
- # @internal
124
- # TODO: Currently `==` does NOT compare `extra_kwargs`. Is it OK?
90
+ # @return [Boolean]
125
91
  #
126
- def ==(other)
127
- return unless other.instance_of?(self.class)
92
+ delegate :failure?, to: :result
128
93
 
129
- return false if service != other.service
130
- return false if inputs != other.inputs
131
- return false if outputs != other.outputs
132
- return false if index != other.index
133
- return false if container != other.container
134
- return false if organizer(raise_when_missing: false) != other.organizer(raise_when_missing: false)
94
+ ##
95
+ # @return [Boolean]
96
+ #
97
+ delegate :error?, to: :result
135
98
 
136
- true
137
- end
99
+ ##
100
+ # @return [Boolean]
101
+ #
102
+ delegate :not_success?, to: :result
138
103
 
139
104
  ##
140
105
  # @return [Boolean]
141
106
  #
142
- def has_organizer?
143
- Utils.to_bool(organizer(raise_when_missing: false))
144
- end
107
+ delegate :not_failure?, to: :result
145
108
 
146
109
  ##
147
110
  # @return [Boolean]
148
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
149
111
  #
150
- def has_reassignment?(name)
151
- outputs.any? { |output| output.reassignment?(name) }
152
- end
112
+ delegate :not_error?, to: :result
153
113
 
154
114
  ##
155
- # @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method, nil]
156
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
115
+ # @api private
157
116
  #
158
- def reassignment(name)
159
- outputs.find { |output| output.reassignment?(name) }
117
+ # @param args [Array<Object>]
118
+ # @param kwargs [Hash{Symbol => Object}]
119
+ # @return [void]
120
+ #
121
+ def initialize(*args, **kwargs)
122
+ @args = args
123
+ @kwargs = kwargs
160
124
  end
161
125
 
162
126
  ##
127
+ # @api private
128
+ #
163
129
  # @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Structs::Params]
164
130
  #
131
+ # @internal
132
+ # TODO: Direct specs.
133
+ #
165
134
  def params
166
135
  @params ||= resolve_params
167
136
  end
168
137
 
169
138
  ##
139
+ # @api private
140
+ #
170
141
  # @return [ConvenientService::Service]
171
142
  # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
172
143
  #
@@ -184,6 +155,8 @@ module ConvenientService
184
155
  end
185
156
 
186
157
  ##
158
+ # @api public
159
+ #
187
160
  # @return [Array<ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method>]
188
161
  #
189
162
  def inputs
@@ -191,6 +164,8 @@ module ConvenientService
191
164
  end
192
165
 
193
166
  ##
167
+ # @api public
168
+ #
194
169
  # @return [Hash{Symbol => Object}]
195
170
  # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
196
171
  #
@@ -199,14 +174,46 @@ module ConvenientService
199
174
  end
200
175
 
201
176
  ##
177
+ # @api public
178
+ #
202
179
  # @return [Hash{Symbol => Object}]
203
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
180
+ # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer, ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepResultDataNotExistingDataAttribute]
204
181
  #
205
182
  def output_values
206
- @output_values ||= result.unsafe_data.to_h.slice(*outputs.map(&:key).map(&:to_sym))
183
+ @output_values ||= calculate_output_values
184
+ end
185
+
186
+ ##
187
+ # @api public
188
+ #
189
+ # @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method, nil]
190
+ # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
191
+ #
192
+ def reassignment(name)
193
+ outputs.find { |output| output.reassignment?(name) }
194
+ end
195
+
196
+ ##
197
+ # @api private
198
+ #
199
+ # @return [String]
200
+ #
201
+ def printable_container
202
+ Utils::Class.display_name(container.klass)
207
203
  end
208
204
 
209
205
  ##
206
+ # @api private
207
+ #
208
+ # @return [String]
209
+ #
210
+ def printable_service
211
+ Utils::Class.display_name(service.klass)
212
+ end
213
+
214
+ ##
215
+ # @api private
216
+ #
210
217
  # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
211
218
  # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
212
219
  #
@@ -215,40 +222,43 @@ module ConvenientService
215
222
  # @internal
216
223
  # IMPORTANT: `service.result(**input_values)` is the reason, why services should have only kwargs as arguments.
217
224
  #
218
- # NOTE: `service_result` returns a foreign result that is later converted to own result by `convert_to_step_result` in `result`.
225
+ # NOTE: `service_result` returns a foreign result that is later converted to own result by `HasResult` middleware.
219
226
  #
220
227
  def service_result
221
- service.klass.result(**input_values)
228
+ @service_result ||= service.klass.result(**input_values)
222
229
  end
223
230
 
224
231
  ##
225
- # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
226
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
232
+ # @api private
227
233
  #
228
- # @note `result` has middlewares.
229
- #
230
- # @internal
231
- # NOTE: Convents a foreign result received from `service_result` to own result.
234
+ # @return [Class]
232
235
  #
233
- def result
234
- convert_to_step_result(service_result)
236
+ def service_class
237
+ service.klass
235
238
  end
236
239
 
237
240
  ##
238
- # @return [String]
241
+ # @api private
239
242
  #
240
- def printable_service
241
- service.klass.to_s
243
+ # @return [Boolean]
244
+ #
245
+ def has_organizer?
246
+ Utils.to_bool(organizer(raise_when_missing: false))
242
247
  end
243
248
 
244
249
  ##
245
- # @return [Class]
250
+ # @api public
246
251
  #
247
- def service_class
248
- service.klass
252
+ # @return [Boolean]
253
+ # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
254
+ #
255
+ def has_reassignment?(name)
256
+ outputs.any? { |output| output.reassignment?(name) }
249
257
  end
250
258
 
251
259
  ##
260
+ # @api private
261
+ #
252
262
  # @return [void]
253
263
  # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
254
264
  #
@@ -257,6 +267,33 @@ module ConvenientService
257
267
  end
258
268
 
259
269
  ##
270
+ # @api private
271
+ #
272
+ # @return [Boolean]
273
+ # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Exceptions::MethodHasNoOrganizer]
274
+ #
275
+ # @internal
276
+ # TODO: Create `OutputMethod`. Move `save` into it.
277
+ #
278
+ def save_outputs_in_organizer!
279
+ output_values.each_pair { |key, value| organizer.internals.cache.scope(:step_output_values).write(key, value) }
280
+
281
+ true
282
+ end
283
+
284
+ ##
285
+ # @api private
286
+ #
287
+ # @param organizer [ConvenientService::Service]
288
+ # @return [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
289
+ #
290
+ def with_organizer(organizer)
291
+ copy(overrides: {kwargs: {organizer: organizer}})
292
+ end
293
+
294
+ ##
295
+ # @api private
296
+ #
260
297
  # @return [void]
261
298
  # @raise [ConvenientService::Error]
262
299
  #
@@ -269,6 +306,8 @@ module ConvenientService
269
306
  end
270
307
 
271
308
  ##
309
+ # @api private
310
+ #
272
311
  # @return [void]
273
312
  #
274
313
  def define!
@@ -278,6 +317,38 @@ module ConvenientService
278
317
  end
279
318
 
280
319
  ##
320
+ # @api private
321
+ #
322
+ # @param other [Object] Can be any type.
323
+ # @return [Boolean, nil]
324
+ #
325
+ def ==(other)
326
+ return unless other.instance_of?(self.class)
327
+
328
+ return false if service != other.service
329
+ return false if inputs != other.inputs
330
+ return false if outputs != other.outputs
331
+ return false if index != other.index
332
+ return false if container != other.container
333
+ return false if organizer(raise_when_missing: false) != other.organizer(raise_when_missing: false)
334
+ return false if extra_kwargs != other.extra_kwargs
335
+
336
+ true
337
+ end
338
+
339
+ ##
340
+ # @return [String]
341
+ #
342
+ # @internal
343
+ # TODO: Remove `printable_service` completely. Leave only `to_s`.
344
+ #
345
+ def to_s
346
+ printable_service
347
+ end
348
+
349
+ ##
350
+ # @api private
351
+ #
281
352
  # @return [Array<Object>]
282
353
  #
283
354
  def to_args
@@ -285,6 +356,8 @@ module ConvenientService
285
356
  end
286
357
 
287
358
  ##
359
+ # @api private
360
+ #
288
361
  # @return [Hash{Symbol => Object}]
289
362
  #
290
363
  def to_kwargs
@@ -292,10 +365,12 @@ module ConvenientService
292
365
  end
293
366
 
294
367
  ##
368
+ # @api private
369
+ #
295
370
  # @return [ConveninentService::Support::Arguments]
296
371
  #
297
372
  def to_arguments
298
- Support::Arguments.new(service, **kwargs.merge(in: inputs, out: outputs, index: index, container: container, organizer: organizer(raise_when_missing: false)))
373
+ Support::Arguments.new(service, **kwargs.merge(in: inputs, out: outputs, index: index, container: container, organizer: organizer(raise_when_missing: false), **extra_kwargs))
299
374
  end
300
375
 
301
376
  private
@@ -324,11 +399,19 @@ module ConvenientService
324
399
  end
325
400
 
326
401
  ##
327
- # @param result [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
328
- # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
402
+ # @return [Hash{Symbol => Object}]
403
+ # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer, ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepResultDataNotExistingAttribute]
329
404
  #
330
- def convert_to_step_result(result)
331
- result.copy(overrides: {kwargs: {step: self, service: organizer}})
405
+ # @internal
406
+ # TODO: Commands instead of private methods.
407
+ # IMPORTANT: `status.unsafe_success?` is used instead of `success?` or `result.status?` in order to NOT mark result as checked.
408
+ # TODO: Create `OutputMethod`. Move `validate_as_output_for_result` into it.
409
+ #
410
+ def calculate_output_values
411
+ return {} if status.unsafe_not_success?
412
+ return {} if outputs.none?
413
+
414
+ unsafe_data.to_h
332
415
  end
333
416
 
334
417
  ##
@@ -18,6 +18,25 @@ module ConvenientService
18
18
  initialize(message)
19
19
  end
20
20
  end
21
+
22
+ class StepResultDataNotExistingAttribute < ::ConvenientService::Exception
23
+ ##
24
+ # @param key [Symbol]
25
+ # @param step [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
26
+ # @return [void]
27
+ #
28
+ def initialize_with_kwargs(key:, step:)
29
+ message = <<~TEXT
30
+ Step `#{step.printable_service}` result does NOT return `:#{key}` data attribute.
31
+
32
+ Maybe there is a typo in `out` definition?
33
+
34
+ Or `success` of `#{step.printable_service}` accepts a wrong key?
35
+ TEXT
36
+
37
+ initialize(message)
38
+ end
39
+ end
21
40
  end
22
41
  end
23
42
  end
@@ -7,7 +7,7 @@ module ConvenientService
7
7
  module Entities
8
8
  class Step
9
9
  module Plugins
10
- module CanBeResultStep
10
+ module CanBeMethodStep
11
11
  module CanBeExecuted
12
12
  module Exceptions
13
13
  class MethodForStepIsNotDefined < ::ConvenientService::Exception
@@ -10,19 +10,65 @@ module ConvenientService
10
10
  module CanBeMethodStep
11
11
  module CanBeExecuted
12
12
  class Middleware < MethodChainMiddleware
13
- intended_for :service_result, entity: :step
13
+ intended_for :result, entity: :step
14
14
 
15
15
  ##
16
16
  # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
17
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Plugins::CanBeResultStep::CanBeExecuted::Exceptions::MethodForStepIsNotDefined]
18
- #
19
- # @internal
20
- # NOTE: `kwargs` are intentionally NOT passed to `object.__send__(method)`, since all the corresponding methods are available inside `entity.organizer.__send__(entity.method)` body.
17
+ # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Plugins::CanBeMethodStep::CanBeExecuted::Exceptions::MethodForStepIsNotDefined]
21
18
  #
22
19
  def next(...)
23
20
  return chain.next(...) unless entity.method_step?
24
21
 
25
- entity.organizer.__send__(entity.method)
22
+ ::ConvenientService.raise Exceptions::MethodForStepIsNotDefined.new(service_class: organizer.class, method_name: method_name) unless own_method
23
+
24
+ call_method(own_method)
25
+ end
26
+
27
+ private
28
+
29
+ ##
30
+ # @param method [Method]
31
+ # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
32
+ #
33
+ def call_method(method)
34
+ params = Support::MethodParameters.new(method.parameters)
35
+
36
+ return method.call(**input_values) if params.has_rest_kwargs?
37
+
38
+ return method.call(**input_values.slice(*params.named_kwargs_keys)) if params.named_kwargs_keys.any?
39
+
40
+ method.call
41
+ end
42
+
43
+ ##
44
+ # @return [Method, nil]
45
+ #
46
+ # @internal
47
+ # TODO: A possible bottleneck. Should be removed if receives negative feedback.
48
+ #
49
+ def own_method
50
+ Utils.memoize_including_falsy_values(self, :@own_method) { Utils::Object.own_method(organizer, method_name, private: true) }
51
+ end
52
+
53
+ ##
54
+ # @return [ConvenientService::Service]
55
+ #
56
+ def organizer
57
+ @organizer ||= entity.organizer
58
+ end
59
+
60
+ ##
61
+ # @return [Symbol]
62
+ #
63
+ def method_name
64
+ @method_name ||= entity.method
65
+ end
66
+
67
+ ##
68
+ # @return [Hash{Symbol => Object}]
69
+ #
70
+ def input_values
71
+ @input_values ||= entity.input_values
26
72
  end
27
73
  end
28
74
  end
@@ -1,3 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "can_be_executed/exceptions"
3
4
  require_relative "can_be_executed/middleware"
@@ -25,6 +25,13 @@ module ConvenientService
25
25
  def method_step?
26
26
  Utils.to_bool(method)
27
27
  end
28
+
29
+ ##
30
+ # @return [Boolean]
31
+ #
32
+ def result_step?
33
+ method_step? && method == :result
34
+ end
28
35
  end
29
36
  end
30
37
  end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "can_have_alternative_steps/middleware"
@@ -39,52 +39,6 @@ module ConvenientService
39
39
  def fallback_step?
40
40
  fallback_true_step? || fallback_failure_step? || fallback_error_step?
41
41
  end
42
-
43
- ##
44
- # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
45
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
46
- #
47
- # @note `service_fallback_failure_result` has middlewares.
48
- #
49
- # @internal
50
- # IMPORTANT: `service.klass.fallback_failure_result(**input_values)` is the reason, why services should have only kwargs as arguments.
51
- # TODO: Extract `StepDefinition`. This way `has_organizer?` check can be avoided completely.
52
- #
53
- def service_fallback_failure_result
54
- service.klass.fallback_failure_result(**input_values)
55
- end
56
-
57
- ##
58
- # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
59
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
60
- # @note `fallback_failure_result` has middlewares.
61
- #
62
- def fallback_failure_result
63
- convert_to_step_result(service_fallback_failure_result)
64
- end
65
-
66
- ##
67
- # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
68
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
69
- #
70
- # @note `service_fallback_error_result` has middlewares.
71
- #
72
- # @internal
73
- # IMPORTANT: `service.klass.fallback_error_result(**input_values)` is the reason, why services should have only kwargs as arguments.
74
- # TODO: Extract `StepDefinition`. This way `has_organizer?` check can be avoided completely.
75
- #
76
- def service_fallback_error_result
77
- service.klass.fallback_error_result(**input_values)
78
- end
79
-
80
- ##
81
- # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result]
82
- # @raise [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Exceptions::StepHasNoOrganizer]
83
- # @note `fallback_error_result` has middlewares.
84
- #
85
- def fallback_error_result
86
- convert_to_step_result(service_fallback_error_result)
87
- end
88
42
  end
89
43
  end
90
44
  end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ConvenientService
4
+ module Service
5
+ module Plugins
6
+ module CanHaveSteps
7
+ module Entities
8
+ class Step
9
+ module Plugins
10
+ module CanHaveFallbacks
11
+ module Exceptions
12
+ class FallbackResultIsNotOverridden < ::ConvenientService::Exception
13
+ ##
14
+ # @param step [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
15
+ # @param service [ConvenientService::Service]
16
+ # @param status [Symbol]
17
+ # @return [void]
18
+ #
19
+ def initialize_with_kwargs(step:, service:, status:)
20
+ message = <<~TEXT
21
+ Neither `fallback_#{status}_result` nor `fallback_result` methods of `#{service.class}` are overridden, but the step is marked to be fallbacked.
22
+
23
+ Either override one of those methods or remove the `fallback` option from the corresponding step definition in `#{step.container.klass}`.
24
+ TEXT
25
+
26
+ initialize(message)
27
+ end
28
+ end
29
+
30
+ class MethodStepCanNotHaveFallback < ::ConvenientService::Exception
31
+ ##
32
+ # @param step [ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step]
33
+ # @return [void]
34
+ #
35
+ def initialize_with_kwargs(step:)
36
+ message = <<~TEXT
37
+ Method step can NOT have fallback.
38
+
39
+ Either remove `fallback` option from step `:#{step.method}` in `#{step.container.klass}` or consider to refactor it into a service step.
40
+ TEXT
41
+
42
+ initialize(message)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end