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
@@ -1,73 +0,0 @@
1
- ##
2
- # Ruby 3.1 with Node.js 16.x.
3
- #
4
- # NOTE: Linted by hadolint.
5
- #
6
- # docker run --rm -i ghcr.io/hadolint/hadolint < docker/3.1/Dockerfile
7
- #
8
- # NOTE: A command to build image.
9
- #
10
- # cd convenient_service
11
- # cp Gemfile Gemfile.3.1
12
- # docker build . -f docker/3.1/Dockerfile -t convenient_service:3.1
13
- # # or `task docker:build:ruby_3.1`
14
- #
15
- # NOTE: A command to run bash in container.
16
- #
17
- # cd convenient_service
18
- # docker run --rm -it -v $(pwd):/gem convenient_service:3.1 bash
19
- # # or `task docker:bash:ruby_3.1`
20
- #
21
- # NOTE: If there are no memory, performance, or cost constraints, prefer to use as standard Linux distribution as it is possible.
22
- # 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.
23
- # That is why a `slim` version is used instead of `alpine`.
24
- # Also `slim` is more similar to Ubuntu.
25
- # - https://github.com/timbru31/docker-ruby-node/tree/master/3.1/16
26
- # - https://medium.com/swlh/alpine-slim-stretch-buster-jessie-bullseye-bookworm-what-are-the-differences-in-docker-62171ed4531d
27
- # - https://hub.docker.com/r/timbru31/ruby-node/tags
28
- #
29
- # NOTE: Gallium means Node.js 16.x.
30
- # https://github.com/nodejs/Release
31
- #
32
- FROM timbru31/ruby-node:3.1-slim-gallium
33
-
34
- ##
35
- # NOTE: `bundle install` dependencies.
36
- #
37
- RUN apt-get update -qq \
38
- && apt-get install --no-install-recommends -y git \
39
- && apt-get install --no-install-recommends -y make \
40
- && apt-get install --no-install-recommends -y gcc \
41
- && apt-get clean \
42
- && rm -rf /var/lib/apt/lists/*
43
-
44
- RUN mkdir -p /gem
45
-
46
- WORKDIR /gem
47
-
48
- COPY . /gem
49
-
50
- ##
51
- # NOTE: Every container has its own copy of `Gemfile`. This way a developer doesn't need to delete `Gemfile.lock` all the time when changing containers.
52
- # - https://docs.docker.com/engine/reference/builder/#env
53
- # - https://stackoverflow.com/questions/48863711/is-it-possible-to-override-gemfile-for-local-development
54
- #
55
- ENV BUNDLE_GEMFILE=Gemfile.3.1
56
-
57
- RUN bundle install
58
-
59
- RUN bundle exec appraisal install
60
-
61
- ##
62
- # NOTE: Installs `task`.
63
- # https://taskfile.dev/installation/#install-script
64
- #
65
- # NOTE: `task` is installed into `~/bin`. That is why `-b /bin` is used. See `echo ${PATH}` to debug.
66
- #
67
- RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /bin
68
-
69
- ##
70
- # NOTE: Is used to check whether a command is executed inside a Docker container. See Rakefile for examples.
71
- # https://stackoverflow.com/a/65942222/12201472
72
- #
73
- ENV IN_DOCKER_CONTAINER=true
@@ -1,73 +0,0 @@
1
- ##
2
- # Ruby 3.2 with Node.js 16.x.
3
- #
4
- # NOTE: Linted by hadolint.
5
- #
6
- # docker run --rm -i ghcr.io/hadolint/hadolint < docker/3.2/Dockerfile
7
- #
8
- # NOTE: A command to build image.
9
- #
10
- # cd convenient_service
11
- # cp Gemfile Gemfile.3.2
12
- # docker build . -f docker/3.2/Dockerfile -t convenient_service:3.2
13
- # # or `task docker:build:ruby_3.2`
14
- #
15
- # NOTE: A command to run bash in container.
16
- #
17
- # cd convenient_service
18
- # docker run --rm -it -v $(pwd):/gem convenient_service:3.2 bash
19
- # # or `task docker:bash:ruby_3.2`
20
- #
21
- # NOTE: If there are no memory, performance, or cost constraints, prefer to use as standard Linux distribution as it is possible.
22
- # 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.
23
- # That is why a `slim` version is used instead of `alpine`.
24
- # Also `slim` is more similar to Ubuntu.
25
- # - https://github.com/timbru31/docker-ruby-node/tree/master/3.2/16
26
- # - https://medium.com/swlh/alpine-slim-stretch-buster-jessie-bullseye-bookworm-what-are-the-differences-in-docker-62171ed4531d
27
- # - https://hub.docker.com/r/timbru31/ruby-node/tags
28
- #
29
- # NOTE: Gallium means Node.js 16.x.
30
- # https://github.com/nodejs/Release
31
- #
32
- FROM timbru31/ruby-node:3.2-slim-gallium
33
-
34
- ##
35
- # NOTE: `bundle install` dependencies.
36
- #
37
- RUN apt-get update -qq \
38
- && apt-get install --no-install-recommends -y git \
39
- && apt-get install --no-install-recommends -y make \
40
- && apt-get install --no-install-recommends -y gcc \
41
- && apt-get clean \
42
- && rm -rf /var/lib/apt/lists/*
43
-
44
- RUN mkdir -p /gem
45
-
46
- WORKDIR /gem
47
-
48
- COPY . /gem
49
-
50
- ##
51
- # NOTE: Every container has its own copy of `Gemfile`. This way a developer doesn't need to delete `Gemfile.lock` all the time when changing containers.
52
- # - https://docs.docker.com/engine/reference/builder/#env
53
- # - https://stackoverflow.com/questions/48863711/is-it-possible-to-override-gemfile-for-local-development
54
- #
55
- ENV BUNDLE_GEMFILE=Gemfile.3.2
56
-
57
- RUN bundle install
58
-
59
- RUN bundle exec appraisal install
60
-
61
- ##
62
- # NOTE: Installs `task`.
63
- # https://taskfile.dev/installation/#install-script
64
- #
65
- # NOTE: `task` is installed into `~/bin`. That is why `-b /bin` is used. See `echo ${PATH}` to debug.
66
- #
67
- RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /bin
68
-
69
- ##
70
- # NOTE: Is used to check whether a command is executed inside a Docker container. See Rakefile for examples.
71
- # https://stackoverflow.com/a/65942222/12201472
72
- #
73
- ENV IN_DOCKER_CONTAINER=true
@@ -1,88 +0,0 @@
1
- ##
2
- # JRuby 9.4 (CRuby 3.1 compatible) with Node.js 16.x.
3
- # - https://www.jruby.org/download
4
- #
5
- # NOTE: Linted by hadolint.
6
- #
7
- # docker run --rm -i ghcr.io/hadolint/hadolint < docker/jruby-9.4/Dockerfile
8
- #
9
- # NOTE: A command to build image.
10
- #
11
- # cd convenient_service
12
- # cp Gemfile Gemfile.jruby-9.4
13
- # docker build . -f docker/jruby-9.4/Dockerfile -t convenient_service:jruby-9.4
14
- # # or `task docker:build:jruby_9.4`
15
- #
16
- # NOTE: A command to run bash in container.
17
- #
18
- # cd convenient_service
19
- # docker run --rm -it -v $(pwd):/gem convenient_service:jruby-9.4 bash
20
- # # or `task docker:bash:jruby_9.4`
21
- #
22
- # NOTE: If there are no memory, performance, or cost constraints, prefer to use as standard Linux distribution as it is possible.
23
- # 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.
24
- # `jruby:9.4` uses Ubuntu under the hood.s
25
- # - https://hub.docker.com/_/jruby/tags
26
- # - https://github.com/jruby/docker-jruby/blob/master/9.4/jre8/Dockerfile
27
- # - https://github.com/adoptium/containers/blob/main/19/jdk/ubuntu/jammy/Dockerfile.releases.full#L20
28
- #
29
- # NOTE: Gallium means Node.js 16.x.
30
- # https://github.com/nodejs/Release
31
- #
32
- FROM jruby:9.4
33
-
34
- ##
35
- # NOTE: `git` is `bundle install` dependency.
36
- #
37
- # NOTE: `curl` and `gnupg2` are Node.js 16.x dependencies.
38
- # https://github.com/timbru31/docker-ruby-node/blob/master/3.2/16/slim/Dockerfile
39
- #
40
- RUN apt-get update -qq \
41
- && apt-get install --no-install-recommends -y git \
42
- && apt-get install --no-install-recommends -y curl \
43
- && apt-get install --no-install-recommends -y gnupg2 \
44
- && apt-get clean \
45
- && rm -rf /var/lib/apt/lists/*
46
-
47
- RUN mkdir -p /gem
48
-
49
- WORKDIR /gem
50
-
51
- COPY . /gem
52
-
53
- ##
54
- # NOTE: Every container has its own copy of `Gemfile`. This way a developer doesn't need to delete `Gemfile.lock` all the time when changing containers.
55
- # - https://docs.docker.com/engine/reference/builder/#env
56
- # - https://stackoverflow.com/questions/48863711/is-it-possible-to-koverride-gemfile-for-local-development
57
- #
58
- ENV BUNDLE_GEMFILE=Gemfile.jruby-9.4
59
-
60
- RUN bundle install
61
-
62
- RUN bundle exec appraisal install
63
-
64
- ##
65
- # NOTE: Installs `task`.
66
- # https://taskfile.dev/installation/#install-script
67
- #
68
- # NOTE: `task` is installed into `~/bin`. That is why `-b /bin` is used. See `echo ${PATH}` to debug.
69
- #
70
- RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /bin
71
-
72
- ##
73
- # NOTE: Intalls Node.js 16.x and `yarn`.
74
- # https://github.com/timbru31/docker-ruby-node/blob/master/3.2/16/slim/Dockerfile
75
- #
76
- RUN curl -sL https://deb.nodesource.com/setup_16.x | bash -\
77
- && apt-get update -qq \
78
- && apt-get install -qq --no-install-recommends nodejs \
79
- && apt-get upgrade -qq \
80
- && apt-get clean \
81
- && rm -rf /var/lib/apt/lists/*\
82
- && npm install -g yarn@1
83
-
84
- ##
85
- # NOTE: Is used to check whether a command is executed inside a Docker container. See Rakefile for examples.
86
- # https://stackoverflow.com/a/65942222/12201472
87
- #
88
- ENV IN_DOCKER_CONTAINER=true
@@ -1,91 +0,0 @@
1
- ##
2
- # TruffleRuby 22.3 (CRuby 3.1 compatible) with Node.js 16.x.
3
- # - https://github.com/graalvm/container/blob/master/truffleruby/README.md
4
- # - https://github.com/oracle/truffleruby/blob/master/doc/user/compatibility.md
5
- #
6
- # NOTE: Linted by hadolint.
7
- #
8
- # docker run --rm -i ghcr.io/hadolint/hadolint < docker/truffleruby-22.3/Dockerfile
9
- #
10
- # NOTE: A command to build image.
11
- #
12
- # cd convenient_service
13
- # cp Gemfile Gemfile.truffleruby-22.3
14
- # docker build . -f docker/truffleruby-22.3/Dockerfile -t convenient_service:truffleruby-22.3
15
- # # or `task docker:build:jruby_9.4`
16
- #
17
- # NOTE: A command to run bash in container.
18
- #
19
- # cd convenient_service
20
- # docker run --rm -it -v $(pwd):/gem convenient_service:truffleruby-22.3 bash
21
- # # or `task docker:bash:jruby_9.4`
22
- #
23
- # NOTE: If there are no memory, performance, or cost constraints, prefer to use as standard Linux distribution as it is possible.
24
- # 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.
25
- # `ghcr.io/graalvm/truffleruby:debian-22.3` uses Debian (that is similar to Ubuntu) under the hood.
26
- # - https://github.com/graalvm/container/pkgs/container/truffleruby/65464856?tag=debian-22.3
27
- # - https://github.com/graalvm/container/blob/master/truffleruby/Dockerfile.debian#L6
28
- # - https://www.graalvm.org/latest/docs/getting-started/container-images/
29
- #
30
- # NOTE: Gallium means Node.js 16.x.
31
- # https://github.com/nodejs/Release
32
- #
33
- FROM ghcr.io/graalvm/truffleruby:debian-22.3
34
-
35
- ##
36
- # NOTE: `git`, `make`, `gcc` are `bundle install` dependencies.
37
- #
38
- # NOTE: `curl` and `gnupg2` are Node.js 16.x dependencies.
39
- # https://github.com/timbru31/docker-ruby-node/blob/master/3.2/16/slim/Dockerfile
40
- #
41
- RUN apt-get update -qq \
42
- && apt-get install --no-install-recommends -y git \
43
- && apt-get install --no-install-recommends -y make \
44
- && apt-get install --no-install-recommends -y gcc \
45
- && apt-get install --no-install-recommends -y curl \
46
- && apt-get install --no-install-recommends -y gnupg2 \
47
- && apt-get clean \
48
- && rm -rf /var/lib/apt/lists/*
49
-
50
- RUN mkdir -p /gem
51
-
52
- WORKDIR /gem
53
-
54
- COPY . /gem
55
-
56
- ##
57
- # NOTE: Every container has its own copy of `Gemfile`. This way a developer doesn't need to delete `Gemfile.lock` all the time when changing containers.
58
- # - https://docs.docker.com/engine/reference/builder/#env
59
- # - https://stackoverflow.com/questions/48863711/is-it-possible-to-koverride-gemfile-for-local-development
60
- #
61
- ENV BUNDLE_GEMFILE=Gemfile.truffleruby-22.3
62
-
63
- RUN bundle install
64
-
65
- RUN bundle exec appraisal install
66
-
67
- ##
68
- # NOTE: Installs `task`.
69
- # https://taskfile.dev/installation/#install-script
70
- #
71
- # NOTE: `task` is installed into `~/bin`. That is why `-b /bin` is used. See `echo ${PATH}` to debug.
72
- #
73
- RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /bin
74
-
75
- ##
76
- # NOTE: Intalls Node.js 16.x and `yarn`.
77
- # https://github.com/timbru31/docker-ruby-node/blob/master/3.2/16/slim/Dockerfile
78
- #
79
- RUN curl -sL https://deb.nodesource.com/setup_16.x | bash -\
80
- && apt-get update -qq \
81
- && apt-get install -qq --no-install-recommends nodejs \
82
- && apt-get upgrade -qq \
83
- && apt-get clean \
84
- && rm -rf /var/lib/apt/lists/*\
85
- && npm install -g yarn@1
86
-
87
- ##
88
- # NOTE: Is used to check whether a command is executed inside a Docker container. See Rakefile for examples.
89
- # https://stackoverflow.com/a/65942222/12201472
90
- #
91
- ENV IN_DOCKER_CONTAINER=true
data/docs/.gitkeep DELETED
File without changes
data/docs/api/.gitkeep DELETED
File without changes
data/env.rb DELETED
@@ -1,23 +0,0 @@
1
- ##
2
- # NOTE: Appraisal sets `BUNDLE_GEMFILE` env variable.
3
- # This is how appraisals can be differentiated from each other.
4
- # https://github.com/thoughtbot/appraisal/blob/v2.4.1/lib/appraisal/command.rb#L36
5
- #
6
- # If `BUNDLE_GEMFILE` is an empty string, then `APPRAISAL_NAME` is resolved to an empty string as well.
7
- # User passed `APPRAISAL_NAME` has a precedence.
8
- #
9
- # IMPORTANT: `APPRAISAL_NAME` env variable should be initialized as far as it is possible.
10
- #
11
- # IMPORTANT: ENV variables declared in this file should NOT be used inside the lib folder.
12
- #
13
- ENV["APPRAISAL_NAME"] ||= ENV["BUNDLE_GEMFILE"].to_s.then(&File.method(:basename)).then { |name| name.end_with?(".gemfile") ? name.delete_suffix(".gemfile") : "" }
14
-
15
- puts "ENV[\"APPRAISAL_NAME\"] -> `#{ENV["APPRAISAL_NAME"]}`"
16
-
17
- ##
18
- # NOTE: Ruby version may be set by docker.
19
- # https://github.com/docker-library/ruby/blob/master/3.1/alpine3.16/Dockerfile#L30
20
- #
21
- ENV["RUBY_VERSION"] ||= ::RUBY_VERSION
22
-
23
- puts "ENV[\"RUBY_VERSION\"] -> `#{ENV["RUBY_VERSION"]}`"
data/gemfiles/.gitkeep DELETED
File without changes
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ConvenientService
4
- module Common
5
- module Plugins
6
- module HasCallbacks
7
- module Container
8
- include Support::DependencyContainer::Export
9
-
10
- export :"entities.Callback" do
11
- Entities::Callback
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # Usage example:
5
- #
6
- # result = ConvenientService::Examples::Dry::Gemfile.format(path: "Gemfile")
7
- # result = ConvenientService::Examples::Dry::Gemfile.format(path: "spec/cli/gemfile/format/fixtures/Gemfile")
8
- #
9
- module ConvenientService
10
- module Examples
11
- module Dry
12
- class Gemfile
13
- class DryService
14
- module Config
15
- include Support::Concern
16
-
17
- included do
18
- include ConvenientService::Standard::Config
19
-
20
- ##
21
- # NOTE: `AssignsAttributesInConstructor::UsingDryInitializer` plugin.
22
- #
23
- concerns do
24
- use ConvenientService::Plugins::Common::AssignsAttributesInConstructor::UsingDryInitializer::Concern
25
- end
26
-
27
- ##
28
- # NOTE: `HasJSendResultParamsValidations::UsingDryValidation` plugin.
29
- #
30
- concerns do
31
- use ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingDryValidation::Concern
32
- end
33
-
34
- middlewares :result do
35
- insert_before \
36
- ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware,
37
- ConvenientService::Plugins::Service::HasJSendResultParamsValidations::UsingDryValidation::Middleware
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "dry_service/config"
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ConvenientService
4
- module Examples
5
- module Dry
6
- class Gemfile
7
- module Services
8
- class AssertFileExists
9
- include DryService::Config
10
-
11
- option :path
12
-
13
- contract do
14
- schema do
15
- required(:path).filled(:string)
16
- end
17
- end
18
-
19
- def result
20
- return failure("File with path `#{path}` does NOT exist") unless ::File.exist?(path)
21
-
22
- success
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ConvenientService
4
- module Examples
5
- module Dry
6
- class Gemfile
7
- module Services
8
- class AssertFileNotEmpty
9
- include DryService::Config
10
-
11
- option :path
12
-
13
- contract do
14
- schema do
15
- required(:path).filled(:string)
16
- end
17
- end
18
-
19
- def result
20
- return failure("File with path `#{path}` is empty") if ::File.zero?(path)
21
-
22
- success
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # Usage example:
5
- #
6
- # ConvenientService::Examples::Dry::Gemfile::Services::AssertNodeAvailable.result
7
- #
8
- module ConvenientService
9
- module Examples
10
- module Dry
11
- class Gemfile
12
- module Services
13
- class AssertNodeAvailable
14
- include DryService::Config
15
-
16
- ##
17
- # NOTE: `> /dev/null 2>&1` is used to hide output.
18
- # https://unix.stackexchange.com/a/119650/394253
19
- #
20
- step Services::RunShellCommand, in: {command: -> { "which node > /dev/null 2>&1" }}
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # Usage example:
5
- #
6
- # ConvenientService::Examples::Dry::Gemfile::Services::AssertNpmPackageAvailable.result(name: "lodash")
7
- #
8
- module ConvenientService
9
- module Examples
10
- module Dry
11
- class Gemfile
12
- module Services
13
- class AssertNpmPackageAvailable
14
- include DryService::Config
15
-
16
- option :name
17
-
18
- contract do
19
- schema do
20
- required(:name).filled(:string)
21
- end
22
- end
23
-
24
- step Services::AssertNodeAvailable
25
-
26
- ##
27
- # NOTE: `> /dev/null 2>&1` is used to hide output.
28
- # https://unix.stackexchange.com/a/119650/394253
29
- #
30
- # NOTE: For `npm list` and its options docs, see
31
- # https://docs.npmjs.com/cli/v7/commands/npm-ls
32
- #
33
- step Services::RunShellCommand, in: {command: -> { "npm list #{name} --depth=0 > /dev/null 2>&1" }}
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ConvenientService
4
- module Examples
5
- module Dry
6
- class Gemfile
7
- module Services
8
- class AssertValidRubySyntax
9
- include DryService::Config
10
-
11
- option :content
12
-
13
- contract do
14
- schema do
15
- required(:content).value(:string)
16
- end
17
- end
18
-
19
- def result
20
- ##
21
- # NOTE: `> /dev/null 2>&1` is used to hide output.
22
- # https://unix.stackexchange.com/a/119650/394253
23
- #
24
- check_ruby_syntax_result = Services::RunShellCommand.result(command: "ruby -c #{file.path} > /dev/null 2>&1")
25
-
26
- return error("`#{content}` contains invalid Ruby syntax") unless check_ruby_syntax_result.success?
27
-
28
- success
29
- end
30
-
31
- private
32
-
33
- def file
34
- @file ||= ::Tempfile.new.tap { |tempfile| tempfile.write(content) }.tap(&:close)
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # Usage example:
5
- #
6
- # result = ConvenientService::Examples::Dry::Gemfile::Services::Format.result(path: "Gemfile")
7
- # result = ConvenientService::Examples::Dry::Gemfile::Services::Format.result(path: "spec/cli/gemfile/format/fixtures/Gemfile")
8
- #
9
- module ConvenientService
10
- module Examples
11
- module Dry
12
- class Gemfile
13
- module Services
14
- class Format
15
- include DryService::Config
16
-
17
- option :path
18
-
19
- step Services::ReadFileContent, in: :path, out: :content
20
- step Services::StripComments, in: :content, out: :content_without_comments
21
- step Services::ParseContent, in: {content: :content_without_comments}, out: :parsed_content
22
- step Services::FormatHeader, in: :parsed_content, out: {formatted_content: :formatted_header_content}
23
- step Services::FormatBody, in: :parsed_content, out: {formatted_content: :formatted_body_content}
24
-
25
- before :result do
26
- @progressbar = ::ProgressBar.create(title: "Formatting", total: steps.count)
27
- end
28
-
29
- after :step do |step_result|
30
- @progressbar.increment
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end