convenient_service 0.17.0 → 0.18.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 (406) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/lib/convenient_service/common/plugins/ensures_negated_j_send_result/middleware.rb +22 -0
  4. data/lib/convenient_service/common/plugins/ensures_negated_j_send_result.rb +3 -0
  5. data/lib/convenient_service/common/plugins/has_around_callbacks/concern.rb +8 -1
  6. data/lib/convenient_service/common/plugins/has_around_callbacks/middleware.rb +28 -7
  7. data/lib/convenient_service/common/plugins/has_callbacks/concern.rb +19 -9
  8. data/lib/convenient_service/common/plugins/has_callbacks/entities/callback_collection.rb +49 -1
  9. data/lib/convenient_service/common/plugins/has_callbacks/middleware.rb +21 -3
  10. data/lib/convenient_service/common/plugins/has_callbacks.rb +0 -1
  11. data/lib/convenient_service/common/plugins/has_instance_proxy/entities/instance_proxy.rb +1 -1
  12. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/has_cache/concern.rb +12 -0
  13. data/lib/convenient_service/common/plugins.rb +1 -0
  14. data/lib/convenient_service/core/entities/config/exceptions.rb +2 -0
  15. data/lib/convenient_service/core/entities/config.rb +3 -0
  16. data/lib/convenient_service/dependencies.rb +11 -3
  17. data/lib/convenient_service/logger.rb +9 -1
  18. data/lib/convenient_service/rspec/matchers/classes/call_chain_next.rb +41 -0
  19. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/commands/generate_printable_method.rb +46 -0
  20. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/delegation.rb +89 -0
  21. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb +223 -0
  22. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/outputs.rb +38 -0
  23. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matcher_collection.rb +157 -0
  24. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/arguments/commands/apply_stub_to_track_delegations.rb +77 -0
  25. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/arguments/commands/generate_printable_arguments.rb +94 -0
  26. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/arguments.rb +89 -0
  27. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/base.rb +99 -0
  28. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/return_custom_value.rb +91 -0
  29. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/return_delegation_value.rb +129 -0
  30. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/with_any_arguments.rb +31 -0
  31. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/with_concrete_arguments.rb +31 -0
  32. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers/without_arguments.rb +31 -0
  33. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/sub_matchers.rb +11 -0
  34. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities.rb +5 -1
  35. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/exceptions.rb +65 -0
  36. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to.rb +163 -41
  37. data/lib/convenient_service/service/configs/minimal.rb +85 -33
  38. data/lib/convenient_service/service/configs/standard/v1.rb +42 -24
  39. data/lib/convenient_service/service/configs/standard.rb +60 -46
  40. data/lib/convenient_service/service/plugins/can_have_connected_steps/concern.rb +503 -0
  41. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/and.rb +133 -0
  42. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/base.rb +126 -0
  43. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/empty.rb +104 -0
  44. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/group.rb +118 -0
  45. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/not.rb +118 -0
  46. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb +145 -0
  47. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/scalar.rb +133 -0
  48. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions.rb +10 -0
  49. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities/step_collection.rb +217 -0
  50. data/lib/convenient_service/service/plugins/can_have_connected_steps/entities.rb +4 -0
  51. data/lib/convenient_service/service/plugins/can_have_connected_steps/exceptions.rb +95 -0
  52. data/lib/convenient_service/service/plugins/can_have_connected_steps/middleware.rb +30 -0
  53. data/lib/convenient_service/service/plugins/can_have_connected_steps.rb +6 -0
  54. data/lib/convenient_service/service/plugins/can_have_sequential_steps/concern.rb +76 -0
  55. data/lib/convenient_service/service/plugins/{can_have_steps → can_have_sequential_steps}/entities/step_collection.rb +54 -10
  56. data/lib/convenient_service/service/plugins/can_have_sequential_steps/entities.rb +3 -0
  57. data/lib/convenient_service/service/plugins/{can_have_steps → can_have_sequential_steps}/middleware.rb +7 -3
  58. data/lib/convenient_service/service/plugins/can_have_sequential_steps.rb +5 -0
  59. data/lib/convenient_service/service/plugins/can_have_steps/concern.rb +4 -57
  60. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb +45 -26
  61. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/reassignment.rb +0 -2
  62. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/exceptions.rb +4 -24
  63. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/concern/instance_methods.rb +155 -80
  64. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/exceptions.rb +19 -0
  65. 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
  66. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/can_be_executed/middleware.rb +64 -4
  67. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/can_be_executed.rb +1 -0
  68. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_method_step/concern.rb +7 -0
  69. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_alternative_steps.rb +3 -0
  70. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/concern.rb +0 -46
  71. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_fallbacks/middleware.rb +26 -2
  72. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_parent_result/middleware.rb +13 -1
  73. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/{can_be_result_step → has_result}/concern.rb +8 -4
  74. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result/middleware.rb +33 -0
  75. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_result.rb +4 -0
  76. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins.rb +2 -1
  77. data/lib/convenient_service/service/plugins/can_have_steps/entities.rb +0 -1
  78. data/lib/convenient_service/service/plugins/can_have_steps.rb +0 -1
  79. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status/concern.rb +2 -2
  80. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status.rb +0 -1
  81. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/concern/instance_methods.rb +135 -2
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_j_send_status_and_attributes/exceptions.rb +15 -0
  88. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_negated_result/concern.rb +72 -0
  89. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/has_negated_result.rb +3 -0
  90. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/raises_on_not_checked_result_status/middleware.rb +1 -1
  91. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins.rb +1 -0
  92. data/lib/convenient_service/service/plugins/has_j_send_result.rb +0 -1
  93. data/lib/convenient_service/service/plugins/has_j_send_result_params_validations/using_dry_validation/middleware.rb +4 -0
  94. data/lib/convenient_service/service/plugins/has_negated_j_send_result/concern.rb +23 -0
  95. data/lib/convenient_service/service/plugins/has_negated_j_send_result.rb +3 -0
  96. data/lib/convenient_service/service/plugins/has_negated_result/concern.rb +33 -0
  97. data/lib/convenient_service/service/plugins/{has_j_send_result → has_negated_result}/exceptions.rb +3 -3
  98. data/lib/convenient_service/service/plugins/has_negated_result.rb +4 -0
  99. data/lib/convenient_service/service/plugins/{wraps_result_in_db_transaction → wraps_result_in_d_b_transaction}/middleware.rb +1 -1
  100. data/lib/convenient_service/service/plugins.rb +7 -2
  101. data/lib/convenient_service/specification.rb +28 -0
  102. data/lib/convenient_service/support/backtrace_cleaner.rb +6 -1
  103. data/lib/convenient_service/support/cache/entities/caches/base.rb +3 -0
  104. data/lib/convenient_service/support/method_parameters.rb +121 -0
  105. data/lib/convenient_service/support/never_reach_here.rb +21 -0
  106. data/lib/convenient_service/support/unique_value.rb +3 -0
  107. data/lib/convenient_service/support/value.rb +78 -0
  108. data/lib/convenient_service/support.rb +3 -0
  109. data/lib/convenient_service/utils/array/find_last.rb +8 -3
  110. data/lib/convenient_service/utils/object/instance_variable_delete.rb +1 -1
  111. data/lib/convenient_service/version.rb +1 -1
  112. data/lib/convenient_service.rb +23 -0
  113. metadata +109 -308
  114. data/.dev/.tmuxinator.yml +0 -22
  115. data/.dockerignore +0 -1
  116. data/.gem_release.yml +0 -11
  117. data/.github/contributing.md +0 -15
  118. data/.github/issue_template.md +0 -35
  119. data/.github/pull_request_template.md +0 -31
  120. data/.github/workflows/cd.yml +0 -68
  121. data/.github/workflows/ci.yml +0 -212
  122. data/.gitignore +0 -66
  123. data/.inch.yml +0 -7
  124. data/.rspec +0 -3
  125. data/.rubocop.yml +0 -45
  126. data/.rubocop_rspec.yml +0 -58
  127. data/.ruby-version +0 -1
  128. data/.tool-versions +0 -1
  129. data/.vscode/CacheItsValue.code-snippets +0 -15
  130. data/.vscode/DelegateTo.code-snippets +0 -15
  131. data/.vscode/cache_its_value.code-snippets +0 -17
  132. data/.vscode/comparison.code-snippets +0 -41
  133. data/.vscode/delegate_to.code-snippets +0 -20
  134. data/.yardopts +0 -16
  135. data/Appraisals +0 -146
  136. data/CHANGELOG.md +0 -504
  137. data/Gemfile +0 -17
  138. data/ROADMAP.md +0 -92
  139. data/Rakefile +0 -54
  140. data/Taskfile.yml +0 -679
  141. data/benchmark/commit_config/ips.rb +0 -18
  142. data/benchmark/commit_config/profile.rb +0 -30
  143. data/benchmark/empty_service/ips.rb +0 -123
  144. data/benchmark/has_committed_config/ips.rb +0 -78
  145. data/benchmark/has_committed_config/profile.rb +0 -30
  146. data/convenient_service.gemspec +0 -233
  147. data/coverage/.gitkeep +0 -0
  148. data/docker/2.7/Dockerfile +0 -73
  149. data/docker/3.0/Dockerfile +0 -73
  150. data/docker/3.1/Dockerfile +0 -73
  151. data/docker/3.2/Dockerfile +0 -73
  152. data/docker/jruby-9.4/Dockerfile +0 -88
  153. data/docker/truffleruby-22.3/Dockerfile +0 -91
  154. data/docs/.gitkeep +0 -0
  155. data/docs/api/.gitkeep +0 -0
  156. data/env.rb +0 -23
  157. data/gemfiles/.gitkeep +0 -0
  158. data/lib/convenient_service/common/plugins/has_callbacks/container.rb +0 -17
  159. data/lib/convenient_service/examples/dry/gemfile/dry_service/config.rb +0 -45
  160. data/lib/convenient_service/examples/dry/gemfile/dry_service.rb +0 -3
  161. data/lib/convenient_service/examples/dry/gemfile/services/assert_file_exists.rb +0 -29
  162. data/lib/convenient_service/examples/dry/gemfile/services/assert_file_not_empty.rb +0 -29
  163. data/lib/convenient_service/examples/dry/gemfile/services/assert_node_available.rb +0 -26
  164. data/lib/convenient_service/examples/dry/gemfile/services/assert_npm_package_available.rb +0 -39
  165. data/lib/convenient_service/examples/dry/gemfile/services/assert_valid_ruby_syntax.rb +0 -41
  166. data/lib/convenient_service/examples/dry/gemfile/services/format.rb +0 -37
  167. data/lib/convenient_service/examples/dry/gemfile/services/format_body.rb +0 -93
  168. data/lib/convenient_service/examples/dry/gemfile/services/format_gems_with_envs.rb +0 -96
  169. data/lib/convenient_service/examples/dry/gemfile/services/format_gems_without_envs.rb +0 -84
  170. data/lib/convenient_service/examples/dry/gemfile/services/format_header.rb +0 -74
  171. data/lib/convenient_service/examples/dry/gemfile/services/parse_content.rb +0 -93
  172. data/lib/convenient_service/examples/dry/gemfile/services/print_shell_command.rb +0 -44
  173. data/lib/convenient_service/examples/dry/gemfile/services/read_file_content.rb +0 -31
  174. data/lib/convenient_service/examples/dry/gemfile/services/run_shell_command.rb +0 -45
  175. data/lib/convenient_service/examples/dry/gemfile/services/strip_comments.rb +0 -109
  176. data/lib/convenient_service/examples/dry/gemfile/services.rb +0 -18
  177. data/lib/convenient_service/examples/dry/gemfile.rb +0 -27
  178. data/lib/convenient_service/examples/dry/v1/gemfile/dry_service/config.rb +0 -47
  179. data/lib/convenient_service/examples/dry/v1/gemfile/dry_service.rb +0 -3
  180. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_file_exists.rb +0 -31
  181. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_file_not_empty.rb +0 -31
  182. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_node_available.rb +0 -28
  183. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_npm_package_available.rb +0 -41
  184. data/lib/convenient_service/examples/dry/v1/gemfile/services/assert_valid_ruby_syntax.rb +0 -43
  185. data/lib/convenient_service/examples/dry/v1/gemfile/services/format.rb +0 -39
  186. data/lib/convenient_service/examples/dry/v1/gemfile/services/format_body.rb +0 -95
  187. data/lib/convenient_service/examples/dry/v1/gemfile/services/format_gems_with_envs.rb +0 -98
  188. data/lib/convenient_service/examples/dry/v1/gemfile/services/format_gems_without_envs.rb +0 -86
  189. data/lib/convenient_service/examples/dry/v1/gemfile/services/format_header.rb +0 -76
  190. data/lib/convenient_service/examples/dry/v1/gemfile/services/parse_content.rb +0 -95
  191. data/lib/convenient_service/examples/dry/v1/gemfile/services/read_file_content.rb +0 -33
  192. data/lib/convenient_service/examples/dry/v1/gemfile/services/run_shell_command.rb +0 -43
  193. data/lib/convenient_service/examples/dry/v1/gemfile/services/strip_comments.rb +0 -111
  194. data/lib/convenient_service/examples/dry/v1/gemfile/services.rb +0 -17
  195. data/lib/convenient_service/examples/dry/v1/gemfile.rb +0 -29
  196. data/lib/convenient_service/examples/rails/gemfile/rails_service/config.rb +0 -56
  197. data/lib/convenient_service/examples/rails/gemfile/rails_service.rb +0 -3
  198. data/lib/convenient_service/examples/rails/gemfile/services/assert_file_exists.rb +0 -25
  199. data/lib/convenient_service/examples/rails/gemfile/services/assert_file_not_empty.rb +0 -25
  200. data/lib/convenient_service/examples/rails/gemfile/services/assert_node_available.rb +0 -26
  201. data/lib/convenient_service/examples/rails/gemfile/services/assert_npm_package_available.rb +0 -35
  202. data/lib/convenient_service/examples/rails/gemfile/services/assert_valid_ruby_syntax.rb +0 -35
  203. data/lib/convenient_service/examples/rails/gemfile/services/format.rb +0 -66
  204. data/lib/convenient_service/examples/rails/gemfile/services/format_body.rb +0 -79
  205. data/lib/convenient_service/examples/rails/gemfile/services/format_gems_with_envs.rb +0 -82
  206. data/lib/convenient_service/examples/rails/gemfile/services/format_gems_without_envs.rb +0 -70
  207. data/lib/convenient_service/examples/rails/gemfile/services/format_header.rb +0 -68
  208. data/lib/convenient_service/examples/rails/gemfile/services/merge_sections.rb +0 -25
  209. data/lib/convenient_service/examples/rails/gemfile/services/parse_content.rb +0 -89
  210. data/lib/convenient_service/examples/rails/gemfile/services/print_shell_command.rb +0 -40
  211. data/lib/convenient_service/examples/rails/gemfile/services/read_file_content.rb +0 -27
  212. data/lib/convenient_service/examples/rails/gemfile/services/replace_file_content.rb +0 -37
  213. data/lib/convenient_service/examples/rails/gemfile/services/run_shell_command.rb +0 -40
  214. data/lib/convenient_service/examples/rails/gemfile/services/strip_comments.rb +0 -107
  215. data/lib/convenient_service/examples/rails/gemfile/services.rb +0 -21
  216. data/lib/convenient_service/examples/rails/gemfile.rb +0 -27
  217. data/lib/convenient_service/examples/rails/v1/gemfile/rails_service/config.rb +0 -58
  218. data/lib/convenient_service/examples/rails/v1/gemfile/rails_service.rb +0 -3
  219. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_file_exists.rb +0 -27
  220. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_file_not_empty.rb +0 -27
  221. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_node_available.rb +0 -28
  222. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_npm_package_available.rb +0 -37
  223. data/lib/convenient_service/examples/rails/v1/gemfile/services/assert_valid_ruby_syntax.rb +0 -37
  224. data/lib/convenient_service/examples/rails/v1/gemfile/services/format.rb +0 -68
  225. data/lib/convenient_service/examples/rails/v1/gemfile/services/format_body.rb +0 -81
  226. data/lib/convenient_service/examples/rails/v1/gemfile/services/format_gems_with_envs.rb +0 -84
  227. data/lib/convenient_service/examples/rails/v1/gemfile/services/format_gems_without_envs.rb +0 -72
  228. data/lib/convenient_service/examples/rails/v1/gemfile/services/format_header.rb +0 -70
  229. data/lib/convenient_service/examples/rails/v1/gemfile/services/merge_sections.rb +0 -27
  230. data/lib/convenient_service/examples/rails/v1/gemfile/services/parse_content.rb +0 -91
  231. data/lib/convenient_service/examples/rails/v1/gemfile/services/read_file_content.rb +0 -29
  232. data/lib/convenient_service/examples/rails/v1/gemfile/services/replace_file_content.rb +0 -39
  233. data/lib/convenient_service/examples/rails/v1/gemfile/services/run_shell_command.rb +0 -38
  234. data/lib/convenient_service/examples/rails/v1/gemfile/services/strip_comments.rb +0 -109
  235. data/lib/convenient_service/examples/rails/v1/gemfile/services.rb +0 -20
  236. data/lib/convenient_service/examples/rails/v1/gemfile.rb +0 -29
  237. data/lib/convenient_service/examples/standard/cowsay/services/build_cloud.rb +0 -42
  238. data/lib/convenient_service/examples/standard/cowsay/services/build_cow.rb +0 -38
  239. data/lib/convenient_service/examples/standard/cowsay/services/print.rb +0 -32
  240. data/lib/convenient_service/examples/standard/cowsay/services.rb +0 -5
  241. data/lib/convenient_service/examples/standard/cowsay.rb +0 -26
  242. data/lib/convenient_service/examples/standard/date_time/services/safe_parse.rb +0 -31
  243. data/lib/convenient_service/examples/standard/date_time/services.rb +0 -3
  244. data/lib/convenient_service/examples/standard/date_time.rb +0 -25
  245. data/lib/convenient_service/examples/standard/factorial/services/calculate.rb +0 -55
  246. data/lib/convenient_service/examples/standard/factorial/services.rb +0 -3
  247. data/lib/convenient_service/examples/standard/factorial/utils/timeout/with_timeout.rb +0 -50
  248. data/lib/convenient_service/examples/standard/factorial/utils/timeout.rb +0 -21
  249. data/lib/convenient_service/examples/standard/factorial/utils.rb +0 -3
  250. data/lib/convenient_service/examples/standard/factorial.rb +0 -26
  251. data/lib/convenient_service/examples/standard/gemfile/services/assert_file_exists.rb +0 -30
  252. data/lib/convenient_service/examples/standard/gemfile/services/assert_file_not_empty.rb +0 -30
  253. data/lib/convenient_service/examples/standard/gemfile/services/assert_node_available.rb +0 -26
  254. data/lib/convenient_service/examples/standard/gemfile/services/assert_npm_package_available.rb +0 -48
  255. data/lib/convenient_service/examples/standard/gemfile/services/assert_valid_ruby_syntax.rb +0 -39
  256. data/lib/convenient_service/examples/standard/gemfile/services/format.rb +0 -80
  257. data/lib/convenient_service/examples/standard/gemfile/services/format_body.rb +0 -83
  258. data/lib/convenient_service/examples/standard/gemfile/services/format_gems_with_envs.rb +0 -86
  259. data/lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb +0 -74
  260. data/lib/convenient_service/examples/standard/gemfile/services/format_header.rb +0 -66
  261. data/lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb +0 -52
  262. data/lib/convenient_service/examples/standard/gemfile/services/parse_content.rb +0 -101
  263. data/lib/convenient_service/examples/standard/gemfile/services/print_shell_command.rb +0 -45
  264. data/lib/convenient_service/examples/standard/gemfile/services/read_file_content.rb +0 -39
  265. data/lib/convenient_service/examples/standard/gemfile/services/replace_file_content.rb +0 -48
  266. data/lib/convenient_service/examples/standard/gemfile/services/run_shell_command.rb +0 -54
  267. data/lib/convenient_service/examples/standard/gemfile/services/strip_comments.rb +0 -111
  268. data/lib/convenient_service/examples/standard/gemfile/services.rb +0 -21
  269. data/lib/convenient_service/examples/standard/gemfile.rb +0 -26
  270. data/lib/convenient_service/examples/standard/request_params/constants.rb +0 -15
  271. data/lib/convenient_service/examples/standard/request_params/entities/description.rb +0 -40
  272. data/lib/convenient_service/examples/standard/request_params/entities/format.rb +0 -40
  273. data/lib/convenient_service/examples/standard/request_params/entities/id.rb +0 -47
  274. data/lib/convenient_service/examples/standard/request_params/entities/logger.rb +0 -21
  275. data/lib/convenient_service/examples/standard/request_params/entities/request.rb +0 -23
  276. data/lib/convenient_service/examples/standard/request_params/entities/source.rb +0 -40
  277. data/lib/convenient_service/examples/standard/request_params/entities/tag.rb +0 -40
  278. data/lib/convenient_service/examples/standard/request_params/entities/title.rb +0 -40
  279. data/lib/convenient_service/examples/standard/request_params/entities.rb +0 -11
  280. data/lib/convenient_service/examples/standard/request_params/services/apply_default_param_values.rb +0 -26
  281. data/lib/convenient_service/examples/standard/request_params/services/cast_params.rb +0 -38
  282. data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_body.rb +0 -70
  283. data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_path.rb +0 -62
  284. data/lib/convenient_service/examples/standard/request_params/services/filter_out_unpermitted_params.rb +0 -26
  285. data/lib/convenient_service/examples/standard/request_params/services/log_request_params.rb +0 -54
  286. data/lib/convenient_service/examples/standard/request_params/services/merge_params.rb +0 -26
  287. data/lib/convenient_service/examples/standard/request_params/services/prepare.rb +0 -65
  288. data/lib/convenient_service/examples/standard/request_params/services/validate_casted_params.rb +0 -94
  289. data/lib/convenient_service/examples/standard/request_params/services/validate_uncasted_params.rb +0 -72
  290. data/lib/convenient_service/examples/standard/request_params/services.rb +0 -13
  291. data/lib/convenient_service/examples/standard/request_params/utils/array/wrap.rb +0 -46
  292. data/lib/convenient_service/examples/standard/request_params/utils/array.rb +0 -21
  293. data/lib/convenient_service/examples/standard/request_params/utils/http/request/parse_body.rb +0 -42
  294. data/lib/convenient_service/examples/standard/request_params/utils/http/request/parse_path.rb +0 -40
  295. data/lib/convenient_service/examples/standard/request_params/utils/http/request.rb +0 -28
  296. data/lib/convenient_service/examples/standard/request_params/utils/http.rb +0 -3
  297. data/lib/convenient_service/examples/standard/request_params/utils/integer/safe_parse.rb +0 -31
  298. data/lib/convenient_service/examples/standard/request_params/utils/integer.rb +0 -25
  299. data/lib/convenient_service/examples/standard/request_params/utils/json/safe_parse.rb +0 -40
  300. data/lib/convenient_service/examples/standard/request_params/utils/json.rb +0 -21
  301. data/lib/convenient_service/examples/standard/request_params/utils/object/blank.rb +0 -34
  302. data/lib/convenient_service/examples/standard/request_params/utils/object/present.rb +0 -31
  303. data/lib/convenient_service/examples/standard/request_params/utils/object.rb +0 -26
  304. data/lib/convenient_service/examples/standard/request_params/utils/url/valid.rb +0 -47
  305. data/lib/convenient_service/examples/standard/request_params/utils/url.rb +0 -21
  306. data/lib/convenient_service/examples/standard/request_params/utils.rb +0 -8
  307. data/lib/convenient_service/examples/standard/request_params.rb +0 -49
  308. data/lib/convenient_service/examples/standard/v1/cowsay/services/build_cloud.rb +0 -44
  309. data/lib/convenient_service/examples/standard/v1/cowsay/services/build_cow.rb +0 -40
  310. data/lib/convenient_service/examples/standard/v1/cowsay/services/print.rb +0 -34
  311. data/lib/convenient_service/examples/standard/v1/cowsay/services.rb +0 -5
  312. data/lib/convenient_service/examples/standard/v1/cowsay.rb +0 -26
  313. data/lib/convenient_service/examples/standard/v1/date_time/services/safe_parse.rb +0 -33
  314. data/lib/convenient_service/examples/standard/v1/date_time/services.rb +0 -3
  315. data/lib/convenient_service/examples/standard/v1/date_time.rb +0 -25
  316. data/lib/convenient_service/examples/standard/v1/factorial/services/calculate.rb +0 -51
  317. data/lib/convenient_service/examples/standard/v1/factorial/services.rb +0 -3
  318. data/lib/convenient_service/examples/standard/v1/factorial/utils/timeout/with_timeout.rb +0 -52
  319. data/lib/convenient_service/examples/standard/v1/factorial/utils/timeout.rb +0 -23
  320. data/lib/convenient_service/examples/standard/v1/factorial/utils.rb +0 -3
  321. data/lib/convenient_service/examples/standard/v1/factorial.rb +0 -26
  322. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_file_exists.rb +0 -32
  323. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_file_not_empty.rb +0 -32
  324. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_node_available.rb +0 -28
  325. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_npm_package_available.rb +0 -50
  326. data/lib/convenient_service/examples/standard/v1/gemfile/services/assert_valid_ruby_syntax.rb +0 -41
  327. data/lib/convenient_service/examples/standard/v1/gemfile/services/format.rb +0 -82
  328. data/lib/convenient_service/examples/standard/v1/gemfile/services/format_body.rb +0 -85
  329. data/lib/convenient_service/examples/standard/v1/gemfile/services/format_gems_with_envs.rb +0 -88
  330. data/lib/convenient_service/examples/standard/v1/gemfile/services/format_gems_without_envs.rb +0 -76
  331. data/lib/convenient_service/examples/standard/v1/gemfile/services/format_header.rb +0 -68
  332. data/lib/convenient_service/examples/standard/v1/gemfile/services/merge_sections.rb +0 -54
  333. data/lib/convenient_service/examples/standard/v1/gemfile/services/parse_content.rb +0 -103
  334. data/lib/convenient_service/examples/standard/v1/gemfile/services/read_file_content.rb +0 -41
  335. data/lib/convenient_service/examples/standard/v1/gemfile/services/replace_file_content.rb +0 -50
  336. data/lib/convenient_service/examples/standard/v1/gemfile/services/run_shell_command.rb +0 -52
  337. data/lib/convenient_service/examples/standard/v1/gemfile/services/strip_comments.rb +0 -113
  338. data/lib/convenient_service/examples/standard/v1/gemfile/services.rb +0 -20
  339. data/lib/convenient_service/examples/standard/v1/gemfile.rb +0 -26
  340. data/lib/convenient_service/examples/standard/v1/request_params/constants.rb +0 -17
  341. data/lib/convenient_service/examples/standard/v1/request_params/entities/description.rb +0 -42
  342. data/lib/convenient_service/examples/standard/v1/request_params/entities/format.rb +0 -42
  343. data/lib/convenient_service/examples/standard/v1/request_params/entities/id.rb +0 -49
  344. data/lib/convenient_service/examples/standard/v1/request_params/entities/logger.rb +0 -23
  345. data/lib/convenient_service/examples/standard/v1/request_params/entities/request.rb +0 -25
  346. data/lib/convenient_service/examples/standard/v1/request_params/entities/source.rb +0 -42
  347. data/lib/convenient_service/examples/standard/v1/request_params/entities/tag.rb +0 -42
  348. data/lib/convenient_service/examples/standard/v1/request_params/entities/title.rb +0 -42
  349. data/lib/convenient_service/examples/standard/v1/request_params/entities.rb +0 -11
  350. data/lib/convenient_service/examples/standard/v1/request_params/services/apply_default_param_values.rb +0 -28
  351. data/lib/convenient_service/examples/standard/v1/request_params/services/cast_params.rb +0 -40
  352. data/lib/convenient_service/examples/standard/v1/request_params/services/extract_params_from_body.rb +0 -72
  353. data/lib/convenient_service/examples/standard/v1/request_params/services/extract_params_from_path.rb +0 -64
  354. data/lib/convenient_service/examples/standard/v1/request_params/services/filter_out_unpermitted_params.rb +0 -28
  355. data/lib/convenient_service/examples/standard/v1/request_params/services/log_request_params.rb +0 -56
  356. data/lib/convenient_service/examples/standard/v1/request_params/services/merge_params.rb +0 -28
  357. data/lib/convenient_service/examples/standard/v1/request_params/services/prepare.rb +0 -67
  358. data/lib/convenient_service/examples/standard/v1/request_params/services/validate_casted_params.rb +0 -96
  359. data/lib/convenient_service/examples/standard/v1/request_params/services/validate_uncasted_params.rb +0 -74
  360. data/lib/convenient_service/examples/standard/v1/request_params/services.rb +0 -13
  361. data/lib/convenient_service/examples/standard/v1/request_params/utils/array/wrap.rb +0 -48
  362. data/lib/convenient_service/examples/standard/v1/request_params/utils/array.rb +0 -23
  363. data/lib/convenient_service/examples/standard/v1/request_params/utils/http/request/parse_body.rb +0 -44
  364. data/lib/convenient_service/examples/standard/v1/request_params/utils/http/request/parse_path.rb +0 -42
  365. data/lib/convenient_service/examples/standard/v1/request_params/utils/http/request.rb +0 -30
  366. data/lib/convenient_service/examples/standard/v1/request_params/utils/http.rb +0 -3
  367. data/lib/convenient_service/examples/standard/v1/request_params/utils/integer/safe_parse.rb +0 -33
  368. data/lib/convenient_service/examples/standard/v1/request_params/utils/integer.rb +0 -27
  369. data/lib/convenient_service/examples/standard/v1/request_params/utils/json/safe_parse.rb +0 -42
  370. data/lib/convenient_service/examples/standard/v1/request_params/utils/json.rb +0 -23
  371. data/lib/convenient_service/examples/standard/v1/request_params/utils/object/blank.rb +0 -36
  372. data/lib/convenient_service/examples/standard/v1/request_params/utils/object/present.rb +0 -33
  373. data/lib/convenient_service/examples/standard/v1/request_params/utils/object.rb +0 -28
  374. data/lib/convenient_service/examples/standard/v1/request_params/utils/url/valid.rb +0 -49
  375. data/lib/convenient_service/examples/standard/v1/request_params/utils/url.rb +0 -23
  376. data/lib/convenient_service/examples/standard/v1/request_params/utils.rb +0 -8
  377. data/lib/convenient_service/examples/standard/v1/request_params.rb +0 -49
  378. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/commands/generate_printable_method.rb +0 -50
  379. 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
  380. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments/commands/generate_printable_arguments.rb +0 -100
  381. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/arguments.rb +0 -95
  382. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/base.rb +0 -87
  383. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/return_its_value.rb +0 -132
  384. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/with_any_arguments.rb +0 -37
  385. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/with_concrete_arguments.rb +0 -37
  386. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/sub_matchers/without_arguments.rb +0 -37
  387. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/values/base.rb +0 -41
  388. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/values/with_calling_original.rb +0 -30
  389. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings/values/without_calling_original.rb +0 -30
  390. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings.rb +0 -12
  391. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings_collection/exceptions.rb +0 -57
  392. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/chainings_collection.rb +0 -171
  393. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities/delegation.rb +0 -79
  394. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher/entities.rb +0 -5
  395. data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/matcher.rb +0 -276
  396. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/reassignment/commands/define_method_in_container.rb +0 -74
  397. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/callers/reassignment/commands.rb +0 -3
  398. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_result_step/can_be_executed/middleware.rb +0 -72
  399. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_result_step/can_be_executed.rb +0 -4
  400. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_be_result_step.rb +0 -5
  401. data/lib/convenient_service/service/plugins/has_j_send_result/entities/result/plugins/can_have_checked_status/middleware.rb +0 -43
  402. data/logo.png +0 -0
  403. data/minitest.rb +0 -30
  404. data/yard/yard-convenient_service_concern.rb +0 -45
  405. /data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/{entities/matcher/commands.rb → commands.rb} +0 -0
  406. /data/lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/{matcher/entities/chainings/sub_matchers → sub_matchers}/arguments/commands.rb +0 -0
data/.dev/.tmuxinator.yml DELETED
@@ -1,22 +0,0 @@
1
- ##
2
- # NOTE: Tmuxinator config options.
3
- # - https://github.com/tmuxinator/tmuxinator#create-a-project
4
- #
5
- name: convenient_service
6
- root: .
7
-
8
- on_project_start:
9
- - task editor:open
10
- - task docker:start
11
- - task github:open
12
-
13
- windows:
14
- - main:
15
- layout: even-vertical
16
- root: .
17
- panes:
18
- - task docker:bash:ruby_2.7
19
- - task docker:bash:ruby_3.0
20
- - task docker:bash:jruby_9.4
21
- - task docker:bash:truffleruby_22.3
22
- - git status
data/.dockerignore DELETED
@@ -1 +0,0 @@
1
- Gemfile.lock
data/.gem_release.yml DELETED
@@ -1,11 +0,0 @@
1
- quiet: false
2
-
3
- ##
4
- # NOTE: `release` options.
5
- # https://github.com/svenfuchs/gem-release#gem-release
6
- #
7
- release:
8
- color: true
9
- host: https://rubygems.org
10
- recurse: false
11
- key: convenient_service
@@ -1,15 +0,0 @@
1
- # Contributing
2
-
3
- ## Legal
4
-
5
- By submitting a Pull Request, you disavow any rights or claims to any changes
6
- submitted to the Convenient Service project and assign the copyright of
7
- those changes to Convenient Service Organization.
8
-
9
- If you cannot or do not want to reassign those rights (your employment
10
- contract for your employer may not allow this), you should not submit a PR.
11
- Open an issue and someone else can do the work.
12
-
13
- This is a legal way of saying "If you submit a PR to us, that code becomes ours".
14
- 99.9% of the time that's what you intend anyways; we hope it doesn't scare you
15
- away from contributing.
@@ -1,35 +0,0 @@
1
- ## What is the issue?
2
- <!--- Briefly describe the problem -->
3
-
4
- -
5
-
6
- ## When it happens? How to reproduce it?
7
- <!--- Tell us how to reproduce the problem. You can write a step-by-step guide, for example -->
8
-
9
- -
10
-
11
- ## Where it happens?
12
- <!--- Point to the file/loc which causes inconsistent behaviour -->
13
-
14
- -
15
-
16
- ## How big is the damage from it?
17
-
18
- -
19
-
20
- ## Why it happens?
21
-
22
- -
23
-
24
- ## What can be done to resolve it?
25
-
26
- -
27
-
28
- ## What is the complexity of a possible fix?
29
-
30
- -
31
-
32
- ## Notes
33
- <!--- Additional info, links, screenshots, actually anything that helps to recreate the way of thoughts (optional). -->
34
-
35
- -
@@ -1,31 +0,0 @@
1
- ## What was done as a part of this PR?
2
- <!--- Describe your changes -->
3
-
4
- -
5
-
6
- ## Why it was done?
7
- <!--- Why is this change required? Does it improve something? What problem does it solve? -->
8
- <!--- If it fixes an open issue, please link to the issue here. -->
9
-
10
- -
11
-
12
- ## How it was done?
13
- <!--- Useful when a solution is not obvious (seems too extraordinary or too heavy) for a team you work with (optional). -->
14
-
15
- -
16
-
17
- ## How to test?
18
-
19
- - `task rspec -- corresponding_spec.rb`
20
- - [Development: Local Development#tests](https://github.com/marian13/convenient_service/wiki/Development:-Local-Development#tests).
21
-
22
- ## Notes
23
- <!--- Additional info, links, screenshots, actually anything that helps to recreate the way of thoughts (optional). -->
24
-
25
- -
26
-
27
- ## Checklist:
28
-
29
- - [ ] I have performed a self-review of my code.
30
- - [ ] I have added/adjusted tests that prove my fix is effective or that my feature works.
31
- - [ ] CI is green.
@@ -1,68 +0,0 @@
1
- ##
2
- # CD using GitHub Actions.
3
- #
4
- # NOTE: GitHub Actions DSL.
5
- # - https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions#understanding-the-workflow-file
6
- # - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
7
- #
8
- # NOTE: Ruby workflow example.
9
- # - https://github.com/ruby/setup-ruby#usage
10
- #
11
- # NOTE: How to set the working directory for the run directive (working-directory)?
12
- # - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrunhttps://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
13
- #
14
- # NOTE: How to deploy to GitHub Pages using GitHub Actions?
15
- # - https://github.com/marketplace/actions/github-pages-action
16
- #
17
- name: CD
18
-
19
- on:
20
- push:
21
- branches:
22
- - main
23
-
24
- jobs:
25
- deploy_api_docs:
26
- runs-on: ubuntu-20.04
27
- name: Deploy API Docs
28
- steps:
29
- - uses: actions/checkout@v2
30
- - name: Set up Ruby
31
- uses: ruby/setup-ruby@v1
32
- with:
33
- ruby-version: 3.2
34
- ##
35
- # NOTE: Installs the latest compatible Bundler version, runs `bundle install` and caches installed gems.
36
- # - https://github.com/ruby/setup-ruby#usage
37
- # - https://github.com/ruby/setup-ruby#bundler
38
- #
39
- bundler-cache: true
40
- ##
41
- # NOTE: Installs Task (task runner).
42
- # - https://taskfile.dev/installation/#github-actions
43
- # - https://github.com/go-task/task
44
- #
45
- - name: Install Task (task runner)
46
- uses: arduino/setup-task@v1
47
- - name: Generate docs
48
- working-directory: ./
49
- run: task docs:generate
50
- - name: Deploy docs to GitHub Pages
51
- uses: peaceiris/actions-gh-pages@v3
52
- with:
53
- github_token: ${{ secrets.GITHUB_TOKEN }}
54
- publish_dir: ./docs/api
55
- cname: apidocs.convenientservice.org
56
-
57
- create_github_release:
58
- runs-on: ubuntu-20.04
59
- name: Create GitHub Release PR
60
- steps:
61
- - uses: google-github-actions/release-please-action@v3
62
- with:
63
- changelog-path: CHANGELOG.md
64
- default-branch: main
65
- include-v-in-tag: true
66
- package-name: convenient_service
67
- release-type: ruby
68
- version-file: lib/convenient_service/version.rb
@@ -1,212 +0,0 @@
1
- ##
2
- # CI using GitHub Actions.
3
- #
4
- # NOTE: GitHub Actions DSL.
5
- # - https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions#understanding-the-workflow-file
6
- # - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
7
- #
8
- # NOTE: Ruby workflow example.
9
- # - https://github.com/ruby/setup-ruby#usage
10
- #
11
- # NOTE: Building and testing Ruby.
12
- # - https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-ruby
13
- #
14
- # NOTE: More examples.
15
- # - https://gist.github.com/geonizeli/57376c15f23feecdabf5ea213c3d7f41
16
- # - https://docs.knapsackpro.com/2019/how-to-run-rspec-on-github-actions-for-ruby-on-rails-app-using-parallel-jobs
17
- #
18
- # NOTE: Sharing data between jobs and post-workflow artifacts.
19
- # - https://docs.github.com/en/actions/learn-github-actions/essential-features-of-github-actions#sharing-data-between-jobs
20
- # - https://github.com/actions/upload-artifact
21
- # - https://github.com/actions/download-artifact
22
- #
23
- # NOTE: Virtual Environments.
24
- # - https://github.com/actions/virtual-environments
25
- #
26
- # NOTE: How to collect and upload coverage reports for Coveralls?
27
- # - https://github.com/marketplace/actions/coveralls-github-action#complete-parallel-job-example
28
- # - https://github.com/coverallsapp/github-action/issues/29
29
- # - https://github.com/coverallsapp/github-action/issues/29#issuecomment-704366557
30
- #
31
- # NOTE: What is the purpose of bundle-audit?
32
- # - https://github.com/rubysec/bundler-audit
33
- #
34
- # IMPORTANT: This workflow is heavily based on Shopify/packwerk workflow.
35
- # - https://github.com/Shopify/packwerk/blob/main/.github/workflows/ci.yml
36
- # - https://github.com/Shopify/packwerk/actions/runs/331834549/workflow
37
- #
38
- name: CI
39
-
40
- on:
41
- pull_request:
42
- branches:
43
- - main
44
- push:
45
- branches:
46
- - main
47
-
48
- jobs:
49
- lint:
50
- ##
51
- # NOTE: If there are no memory, performance, or cost constraints, prefer to use as standard Linux distribution as it is possible.
52
- # In a general case, you simply won't have enough time to resolve all the "quirks" of more specific distributions if you are an application developer.
53
- # That is why the well-known Ubuntu is used.
54
- # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#choosing-github-hosted-runners
55
- #
56
- runs-on: ubuntu-20.04
57
- name: Lint
58
- steps:
59
- - uses: actions/checkout@v2
60
- - name: Set up Ruby
61
- uses: ruby/setup-ruby@v1
62
- with:
63
- ruby-version: 3.2
64
- ##
65
- # NOTE: Installs the latest compatible Bundler version, runs `bundle install` and caches installed gems.
66
- # - https://github.com/ruby/setup-ruby#usage
67
- # - https://github.com/ruby/setup-ruby#bundler
68
- #
69
- bundler-cache: true
70
- ##
71
- # NOTE: Installs Task (task runner).
72
- # https://taskfile.dev/installation/#github-actions
73
- # https://github.com/go-task/task
74
- #
75
- - name: Install Task (task runner)
76
- uses: arduino/setup-task@v1
77
- - name: Run Rubocop
78
- run: task rubocop
79
- - name: Run Yard-Junk (docs linter)
80
- run: task docs:lint
81
-
82
- test:
83
- needs:
84
- - lint
85
- ##
86
- # NOTE: If there are no memory, performance, or cost constraints, prefer to use as standard Linux distribution as it is possible.
87
- # In a general case, you simply won't have enough time to resolve all the "quirks" of more specific distributions if you are an application developer.
88
- # That is why the well-known Ubuntu is used.
89
- # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#choosing-github-hosted-runners
90
- #
91
- # NOTE: List of all possible Ruby, JRuby versions.
92
- # https://github.com/ruby/setup-ruby/blob/master/ruby-builder-versions.json
93
- #
94
- runs-on: ubuntu-20.04
95
- strategy:
96
- matrix:
97
- gemfile:
98
- - Gemfile
99
- ruby:
100
- - 2.7
101
- ##
102
- # NOTE: 3.0 is wrapped by quotes in order to avoid misparsing it as integer.
103
- # https://github.com/actions/runner/issues/849
104
- #
105
- - "3.0"
106
- - 3.1
107
- - 3.2
108
- ##
109
- # NOTE: JRuby 9.4 aims CRuby 3.1 compatibility.
110
- # - https://www.jruby.org/download
111
- #
112
- - "jruby-9.4"
113
- ##
114
- # NOTE: TruffleRuby 22.3 aims CRuby 3.1 compatibility.
115
- # - https://www.jruby.org/download
116
- #
117
- # IMPORTANT: TruffleRuby 22.3 is currently disabled since too many specs are failing due to CRuby uncompatible code.
118
- #
119
- # NOTE: Use `task docker:bash:truffleruby_22.3` and then `task rspec` to reproduce them locally.
120
- #
121
- # TODO: Make ConvenientService TruffleRuby 22.3 compatible.
122
- #
123
- # - "truffleruby-22.3"
124
- env:
125
- BUNDLE_GEMFILE: ${{ matrix.gemfile }}
126
-
127
- name: "Test Ruby `${{ matrix.ruby }}` with Gemfile `${{ matrix.gemfile }}`"
128
- steps:
129
- - uses: actions/checkout@v2
130
- - name: "Set up Ruby `${{ matrix.ruby }}`"
131
- uses: ruby/setup-ruby@v1
132
- with:
133
- ruby-version: ${{ matrix.ruby }}
134
- ##
135
- # NOTE: Installs the latest compatible Bundler version, runs `bundle install` and caches installed gems.
136
- # - https://github.com/ruby/setup-ruby#usage
137
- # - https://github.com/ruby/setup-ruby#bundler
138
- #
139
- bundler-cache: true
140
- ##
141
- # NOTE: Installs Task (task runner).
142
- # - https://taskfile.dev/installation/#github-actions
143
- # - https://github.com/go-task/task
144
- #
145
- - name: Install Task (task runner)
146
- uses: arduino/setup-task@v1
147
- - name: Run RSpec without appraisals
148
- run: task rspec:standard
149
- - name: Install dependencies for appraisals
150
- run: task deps:install
151
- - name: Run RSpec with Rails 7.0
152
- run: task rspec:rails_7.0
153
- - name: Run RSpec with Rails 6.1
154
- run: task rspec:rails_6.1
155
- - name: Run RSpec with Rails 6.0
156
- run: task rspec:rails_6.0
157
- - name: Run RSpec with Rails 5.2
158
- run: task rspec:rails_5.2
159
- - name: Run RSpec with Dry
160
- run: task rspec:dry
161
- - name: Run Minitest
162
- run: task minitest
163
- ##
164
- # NOTE: `lcov-result-merger` is written in JS.
165
- #
166
- - name: Set up Node.js 16.x
167
- uses: actions/setup-node@v3
168
- with:
169
- node-version: 16.x
170
- ##
171
- # NOTE: `lcov-result-merger` docs.
172
- # - https://github.com/mweibel/lcov-result-merger
173
- #
174
- # NOTE: `npx --yes` option.
175
- # - https://stackoverflow.com/questions/70742968/automatically-accept-installing-npx-package
176
- #
177
- # NOTE: `lcov-result-merger` uses `vinyl-fs` for globs which in turn uses `node-glob`.
178
- # - https://github.com/mweibel/lcov-result-merger/blob/v3.3.0/bin/lcov-result-merger.js#L38
179
- # - https://github.com/gulpjs/vinyl-fs#srcglobs-options
180
- # - https://github.com/isaacs/node-glob#glob-primer
181
- #
182
- # NOTE: Append `&& cat coverage/lcov.info` to debug.
183
- #
184
- # IMPORTANT: 'coverage/**/lcov.info' single quotes are mandatory.
185
- #
186
- - name: Merge coverage reports into single file
187
- run: task coverage:lcov:merge
188
- - name: Configure coverage reports for Coveralls
189
- uses: coverallsapp/github-action@master
190
- with:
191
- github-token: ${{ secrets.github_token }}
192
- flag-name: run-${{ matrix.ruby }}-${{ matrix.gemfile }}
193
- parallel: true
194
- path-to-lcov: "./coverage/lcov.info"
195
-
196
- coverage:
197
- needs:
198
- - test
199
- ##
200
- # NOTE: If there are no memory, performance, or cost constraints, prefer to use as standard Linux distribution as it is possible.
201
- # In a general case, you simply won't have enough time to resolve all the "quirks" of more specific distributions if you are an application developer.
202
- # That is why the well-known Ubuntu is used.
203
- # - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#choosing-github-hosted-runners
204
- #
205
- runs-on: ubuntu-20.04
206
- name: Gather coverage
207
- steps:
208
- - name: Upload coverage reports to Coveralls
209
- uses: coverallsapp/github-action@master
210
- with:
211
- github-token: ${{ secrets.github_token }}
212
- parallel-finished: true
data/.gitignore DELETED
@@ -1,66 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
-
5
- ##
6
- # NOTE: Ignores `coverage` content, but NOT the folder.
7
- #
8
- /coverage/*
9
- !/coverage/.gitkeep
10
-
11
- /doc/
12
- /pkg/
13
- /spec/reports/
14
- /tmp/
15
-
16
- # rspec failure tracking
17
- /.rspec_status
18
-
19
- # Hide `byebug` history
20
- /.byebug_history
21
-
22
- # Ignore `Gemfile.lock`
23
- /Gemfile.lock
24
-
25
- ##
26
- # NOTE: Ignores `Gemfile` amd `Gemfile.lock` used in docker containers.
27
- #
28
- # NOTE: `Gemfile*` matches all files that start with Gemfile in any nesting.
29
- # NOTE: `/Gemfile*` matches all files that start with Gemfile only from root folder.
30
- #
31
- /Gemfile*
32
-
33
- ##
34
- # NOTE: Ignores `gemfiles` content, but NOT the folder.
35
- # NOTE: `gemfiles` folder is generated by Appraisal.
36
- #
37
- /gemfiles/*
38
- !/gemfiles/.gitkeep
39
-
40
- ##
41
- # NOTE: Ignores `.DS_Store` in any nesting.
42
- #
43
- .DS_Store
44
-
45
- ##
46
- # NOTE: Ignores `docs` content, but NOT the folder.
47
- #
48
- /docs/*
49
- !/docs/.gitkeep
50
-
51
- ##
52
- # NOTE: Ignores `docs/api` content, but NOT the folder.
53
- #
54
- /docs/api/*
55
- !/docs/api/.gitkeep
56
-
57
- ##
58
- # NOTE: Ignores `flowchart.html`, that can be generated by `Service.mermaid_flowchart.save`.
59
- # Check `HasMermaidFlowchart` for details.
60
- #
61
- flowchart.html
62
-
63
- ##
64
- # NOTE: Ignores `TODO.md`. Usually, this file is used for notes that are NOT ready to be shared with the outside world.
65
- #
66
- TODO.md
data/.inch.yml DELETED
@@ -1,7 +0,0 @@
1
- ##
2
- # Configures Inch (inch gives you hints where to improve your docs).
3
- # https://github.com/rrrene/inch#configuration
4
- #
5
- files:
6
- included:
7
- - lib/**/*.rb
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop.yml DELETED
@@ -1,45 +0,0 @@
1
- inherit_from:
2
- - .rubocop_rspec.yml
3
-
4
- ##
5
- # Standard based Rubocop config.
6
- # - https://github.com/testdouble/standard
7
- # - https://github.com/testdouble/standard#usage-via-rubocop
8
- # - https://evilmartians.com/chronicles/rubocoping-with-legacy-bring-your-ruby-code-up-to-standard
9
- #
10
- require:
11
- ##
12
- # Rubocop for RSpec files.
13
- # https://github.com/rubocop/rubocop-rspec#usage
14
- #
15
- - rubocop-rspec
16
- ##
17
- # NOTE: `rubocop-performance` is automatically bundled with Standard.
18
- #
19
- - rubocop-performance
20
- ##
21
- # NOTE: Custom Standard cop that should be loaded before `config/base.yml`.
22
- #
23
- - standard/cop/block_single_line_braces
24
-
25
- inherit_gem:
26
- standard: config/base.yml
27
-
28
- AllCops:
29
- ##
30
- # https://github.com/testdouble/standard#how-do-i-specify-a-ruby-version-what-is-supported
31
- #
32
- TargetRubyVersion: 2.7
33
-
34
- Exclude:
35
- ##
36
- # NOTE: Excludes vendor from linting. Needed by GitHub Actions.
37
- # - https://github.com/rubocop/rubocop/issues/9832
38
- # - https://github.com/rubocop/rubocop/issues/9832#issuecomment-873398952
39
- #
40
- - vendor/**/*
41
-
42
- ##
43
- # NOTE: Excludes dependencies from linting.
44
- #
45
- - lib/convenient_service/dependencies/**/*
data/.rubocop_rspec.yml DELETED
@@ -1,58 +0,0 @@
1
- ##
2
- # Standard based Rubocop config suggested by Evil Martians.
3
- # - https://evilmartians.com/chronicles/rubocoping-with-legacy-bring-your-ruby-code-up-to-standard
4
- # - https://github.com/testdouble/standard
5
- #
6
- # Copied without any modifications from:
7
- # https://gist.github.com/palkan/623c0816b05ed246bfe0cb406050990a
8
- #
9
- require:
10
- - rubocop-rspec
11
-
12
- RSpec/Focus:
13
- Enabled: true
14
-
15
- RSpec/EmptyExampleGroup:
16
- Enabled: true
17
-
18
- RSpec/EmptyLineAfterExampleGroup:
19
- Enabled: true
20
-
21
- RSpec/EmptyLineAfterFinalLet:
22
- Enabled: true
23
-
24
- RSpec/EmptyLineAfterHook:
25
- Enabled: true
26
-
27
- RSpec/EmptyLineAfterSubject:
28
- Enabled: true
29
-
30
- RSpec/HookArgument:
31
- Enabled: true
32
-
33
- RSpec/HooksBeforeExamples:
34
- Enabled: true
35
-
36
- RSpec/ImplicitExpect:
37
- Enabled: true
38
-
39
- RSpec/IteratedExpectation:
40
- Enabled: true
41
-
42
- RSpec/LetBeforeExamples:
43
- Enabled: true
44
-
45
- RSpec/MissingExampleGroupArgument:
46
- Enabled: true
47
-
48
- RSpec/ReceiveCounts:
49
- Enabled: true
50
-
51
- RSpec/Capybara/CurrentPathExpectation:
52
- Enabled: true
53
-
54
- RSpec/FactoryBot/AttributeDefinedStatically:
55
- Enabled: true
56
-
57
- RSpec/FactoryBot/CreateList:
58
- Enabled: true
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.2.0
data/.tool-versions DELETED
@@ -1 +0,0 @@
1
- ruby 3.2.0
@@ -1,15 +0,0 @@
1
- {
2
- ////
3
- // NOTE: `.code-snippets` files support only C-style comments.
4
- // NOTE: More information about VS Code Snippets can be found here:
5
- // - https://code.visualstudio.com/docs/editor/userdefinedsnippets
6
- //
7
- "CacheItsValue RSpec module": {
8
- "scope": "ruby",
9
- "prefix": "CacheItsValue",
10
- "body": [
11
- "include ConvenientService::RSpec::PrimitiveMatchers::CacheItsValue",
12
- ],
13
- "description": "`CacheItsValue` - a module that allows to use custom RSpec matcher `cache_its_value` to verify caching"
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- ////
3
- // NOTE: `.code-snippets` files support only C-style comments.
4
- // NOTE: More information about VS Code Snippets can be found here:
5
- // - https://code.visualstudio.com/docs/editor/userdefinedsnippets
6
- //
7
- "DelegateTo RSpec module": {
8
- "scope": "ruby",
9
- "prefix": "DelegateTo",
10
- "body": [
11
- "include ConvenientService::RSpec::Matchers::DelegateTo",
12
- ],
13
- "description": "`DelegateTo` - a module that allows to use custom RSpec matcher `delegate_to` to verify delegations"
14
- }
15
- }
@@ -1,17 +0,0 @@
1
- {
2
- ////
3
- // NOTE: `.code-snippets` files support only C-style comments.
4
- // NOTE: More information about VS Code Snippets can be found here:
5
- // - https://code.visualstudio.com/docs/editor/userdefinedsnippets
6
- //
7
- "cache_its_value RSpec matcher": {
8
- "scope": "ruby",
9
- "prefix": "cache_its_value",
10
- "body": [
11
- "specify do",
12
- " expect { $1 }.to cache_its_value",
13
- "end"
14
- ],
15
- "description": "`cache_its_value` - a custom RSpec matcher to verify caching"
16
- }
17
- }
@@ -1,41 +0,0 @@
1
- {
2
- ////
3
- // NOTE: `.code-snippets` files support only C-style comments.
4
- // NOTE: More information about VS Code Snippets can be found here:
5
- // - https://code.visualstudio.com/docs/editor/userdefinedsnippets
6
- //
7
- "comparison RSpec example group": {
8
- "scope": "ruby",
9
- "prefix": "comparison",
10
- "body": [
11
- "example_group \"comparison\" do",
12
- " describe \"#==\" do",
13
- " context \"when `other` have different class\" do",
14
- " let(:other) { 42 }",
15
- "",
16
- " it \"returns `nil`\" do",
17
- " expect(${1:entity} == other).to be_nil",
18
- " end",
19
- " end",
20
- "",
21
- " context \"when `other` have different ${2:attribute}\" do",
22
- " let(:other) { described_class.new(${2:attribute}: other_${2:attribute}) }",
23
- "",
24
- " it \"returns `false`\" do",
25
- " expect(${1:entity} == other).to eq(false)",
26
- " end",
27
- " end",
28
- "",
29
- " context \"when `other` has same attributes\" do",
30
- " let(:other) { described_class.new }",
31
- "",
32
- " it \"returns `true`\" do",
33
- " expect(${1:entity} == other).to eq(true)",
34
- " end",
35
- " end",
36
- " end",
37
- "end",
38
- ],
39
- "description": "`comparison` - an example group for RSpec to verify `#==`, `#===`, `#equal?`, `#eql?` methods"
40
- }
41
- }