convenient_service 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/.dev/.tmuxinator.yml +2 -1
  3. data/.github/workflows/ci.yml +21 -1
  4. data/CHANGELOG.md +67 -0
  5. data/Gemfile +6 -0
  6. data/README.md +4 -2
  7. data/Taskfile.yml +94 -0
  8. data/convenient_service.gemspec +40 -2
  9. data/docker/2.7/Dockerfile +3 -3
  10. data/docker/3.0/Dockerfile +2 -2
  11. data/docker/3.1/Dockerfile +2 -2
  12. data/docker/3.2/Dockerfile +73 -0
  13. data/docker/jruby-9.4/Dockerfile +88 -0
  14. data/docker/truffleruby-22.3/Dockerfile +91 -0
  15. data/lib/convenient_service/common/plugins/aliases.rb +0 -1
  16. data/lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_active_model_attribute_assignment/middleware.rb +12 -8
  17. data/lib/convenient_service/common/plugins/caches_return_value/middleware.rb +3 -3
  18. data/lib/convenient_service/common/plugins/can_have_user_provided_entity/errors.rb +2 -2
  19. data/lib/convenient_service/common/plugins/has_around_callbacks/errors.rb +1 -1
  20. data/lib/convenient_service/common/plugins/has_callbacks/entities/callback.rb +7 -7
  21. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/aliases.rb +7 -0
  22. data/lib/convenient_service/common/plugins/has_internals/entities/internals/plugins.rb +2 -0
  23. data/lib/convenient_service/configs/minimal.rb +19 -10
  24. data/lib/convenient_service/core/class_methods.rb +24 -9
  25. data/lib/convenient_service/core/constants.rb +36 -0
  26. data/lib/convenient_service/core/entities/config/commands/track_method_missing_commit_trigger.rb +69 -0
  27. data/lib/convenient_service/core/entities/config/commands.rb +3 -0
  28. data/lib/convenient_service/core/entities/config/entities/concerns/entities/stack.rb +10 -10
  29. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/chain.rb +3 -3
  30. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware.rb +18 -1
  31. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creator.rb +62 -0
  32. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities/stack.rb +12 -12
  33. data/lib/convenient_service/core/entities/config/entities/method_middlewares/entities.rb +1 -0
  34. data/lib/convenient_service/core/entities/config/entities/method_middlewares.rb +1 -1
  35. data/lib/convenient_service/core/entities/config/errors.rb +38 -1
  36. data/lib/convenient_service/core/entities/config.rb +14 -4
  37. data/lib/convenient_service/core/instance_methods.rb +6 -4
  38. data/lib/convenient_service/core.rb +1 -0
  39. data/lib/convenient_service/dependencies/built_in.rb +7 -0
  40. data/lib/convenient_service/dependencies/extractions/active_support_concern/concern.rb +18 -2
  41. data/lib/convenient_service/dependencies/extractions/active_support_concern.rb +4 -0
  42. data/lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/builder.rb +7 -1
  43. data/lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb +7 -1
  44. data/lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/runner.rb +15 -1
  45. data/lib/convenient_service/dependencies/extractions/ruby_middleware/middleware.rb +8 -1
  46. data/lib/convenient_service/dependencies/extractions/ruby_middleware.rb +3 -2
  47. data/lib/convenient_service/dependencies.rb +16 -15
  48. data/lib/convenient_service/examples/dry/gemfile.rb +4 -4
  49. data/lib/convenient_service/examples/rails/gemfile.rb +4 -4
  50. data/lib/convenient_service/examples/standard/cowsay.rb +4 -4
  51. data/lib/convenient_service/examples/standard/gemfile/services/assert_file_exists.rb +1 -1
  52. data/lib/convenient_service/examples/standard/gemfile/services/assert_file_not_empty.rb +1 -1
  53. data/lib/convenient_service/examples/standard/gemfile/services/assert_node_available.rb +0 -9
  54. data/lib/convenient_service/examples/standard/gemfile/services/assert_npm_package_available.rb +0 -10
  55. data/lib/convenient_service/examples/standard/gemfile/services/format.rb +0 -10
  56. data/lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb +0 -10
  57. data/lib/convenient_service/examples/standard/gemfile/services/parse_content.rb +0 -10
  58. data/lib/convenient_service/examples/standard/gemfile/services/read_file_content.rb +0 -10
  59. data/lib/convenient_service/examples/standard/gemfile/services/replace_file_content.rb +0 -10
  60. data/lib/convenient_service/examples/standard/gemfile.rb +4 -4
  61. data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_body.rb +0 -10
  62. data/lib/convenient_service/examples/standard/request_params/services/extract_params_from_path.rb +0 -10
  63. data/lib/convenient_service/examples/standard/request_params/services/validate_casted_params.rb +0 -10
  64. data/lib/convenient_service/examples/standard/request_params/services/validate_uncasted_params.rb +0 -10
  65. data/lib/convenient_service/examples/standard/request_params.rb +4 -4
  66. data/lib/convenient_service/feature.rb +12 -0
  67. data/lib/convenient_service/logger.rb +6 -5
  68. data/lib/convenient_service/rspec/helpers/custom/in_threads.rb +74 -0
  69. data/lib/convenient_service/rspec/helpers/custom/stub_service/constants.rb +20 -0
  70. data/lib/convenient_service/rspec/helpers/custom/stub_service/entities/stubbed_service.rb +4 -4
  71. data/lib/convenient_service/rspec/helpers/custom/stub_service.rb +1 -0
  72. data/lib/convenient_service/rspec/helpers/custom/wrap_method/entities/wrapped_method.rb +3 -3
  73. data/lib/convenient_service/rspec/helpers/custom/wrap_method/errors.rb +1 -1
  74. data/lib/convenient_service/rspec/helpers/custom.rb +1 -0
  75. data/lib/convenient_service/rspec/helpers/in_threads.rb +13 -0
  76. data/lib/convenient_service/rspec/helpers.rb +2 -0
  77. data/lib/convenient_service/rspec/matchers/custom/delegate_to/entities/matcher/entities/chainings_collection/errors.rb +3 -3
  78. data/lib/convenient_service/rspec/matchers/custom/delegate_to/entities/matcher/entities/delegation.rb +3 -3
  79. data/lib/convenient_service/rspec/matchers/custom/export.rb +82 -0
  80. data/lib/convenient_service/rspec/matchers/custom/results/base/constants.rb +22 -0
  81. data/lib/convenient_service/rspec/matchers/custom/results/base/errors.rb +1 -1
  82. data/lib/convenient_service/rspec/matchers/custom/results/base.rb +2 -1
  83. data/lib/convenient_service/rspec/matchers/custom.rb +1 -0
  84. data/lib/convenient_service/rspec/matchers/export.rb +13 -0
  85. data/lib/convenient_service/rspec/matchers.rb +2 -0
  86. data/lib/convenient_service/service/plugins/aliases.rb +0 -2
  87. data/lib/convenient_service/service/plugins/can_have_method_steps/middleware.rb +2 -2
  88. data/lib/convenient_service/service/plugins/can_have_result_step/middleware.rb +2 -2
  89. data/lib/convenient_service/service/plugins/can_have_steps/concern.rb +2 -2
  90. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method.rb +46 -11
  91. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_direction.rb +29 -2
  92. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_factory.rb +113 -0
  93. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands.rb +1 -3
  94. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/base.rb +62 -0
  95. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/base.rb +35 -0
  96. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/proc_value.rb +42 -0
  97. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/raw_value.rb +42 -0
  98. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/reassignment_value.rb +42 -0
  99. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/string_value.rb +42 -0
  100. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/symbol_value.rb +42 -0
  101. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash.rb +8 -0
  102. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/method.rb +40 -0
  103. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/reassignment.rb +40 -0
  104. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/string.rb +40 -0
  105. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/symbol.rb +40 -0
  106. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories.rb +8 -0
  107. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/entities.rb +1 -0
  108. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/errors.rb +7 -7
  109. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/errors.rb +12 -8
  110. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/aliases.rb +7 -0
  111. data/lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins.rb +2 -0
  112. data/lib/convenient_service/service/plugins/can_have_steps/entities/step_collection.rb +37 -8
  113. data/lib/convenient_service/service/plugins/can_have_stubbed_result/concern.rb +19 -11
  114. data/lib/convenient_service/service/plugins/can_have_stubbed_result/middleware.rb +3 -3
  115. data/lib/convenient_service/service/plugins/has_result/concern/instance_methods.rb +3 -3
  116. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/aliases.rb +7 -0
  117. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_have_parent_result/concern.rb +12 -5
  118. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes/concern/class_methods.rb → can_have_parent_result/constants.rb} +3 -4
  119. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_have_parent_result.rb +1 -0
  120. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes/commands/cast_jsend_attributes.rb → has_j_send_status_and_attributes/commands/cast_j_send_attributes.rb} +1 -1
  121. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_code_class.rb +49 -0
  122. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_data_class.rb +49 -0
  123. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_message_class.rb +49 -0
  124. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_status_class.rb +49 -0
  125. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands.rb +7 -0
  126. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/concern/class_methods.rb +69 -0
  127. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/concern/instance_methods.rb +9 -9
  128. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/concern.rb +1 -1
  129. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/entities/code/concern/class_methods.rb +2 -2
  130. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/entities/code/concern/instance_methods.rb +3 -3
  131. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/entities/code/concern.rb +1 -1
  132. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/entities/code.rb +1 -1
  133. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern/class_methods.rb +38 -0
  134. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern/instance_methods.rb +94 -0
  135. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern.rb +36 -0
  136. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data.rb +25 -0
  137. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern/class_methods.rb +40 -0
  138. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern/instance_methods.rb +58 -0
  139. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern.rb +36 -0
  140. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message.rb +25 -0
  141. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern/class_methods.rb +40 -0
  142. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern/instance_methods.rb +115 -0
  143. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern.rb +36 -0
  144. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status.rb +25 -0
  145. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/errors.rb +6 -2
  146. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/middleware.rb +4 -4
  147. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes/structs/jsend_attributes.rb → has_j_send_status_and_attributes/structs/j_send_attributes.rb} +1 -1
  148. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/structs.rb +3 -0
  149. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes.rb +8 -0
  150. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_result_short_syntax/concern.rb +3 -3
  151. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/raises_on_not_checked_result_status/errors.rb +1 -1
  152. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins.rb +3 -1
  153. data/lib/convenient_service/service/plugins/has_result/errors.rb +2 -2
  154. data/lib/convenient_service/service/plugins/has_result_status_check_short_syntax/concern.rb +16 -0
  155. data/lib/convenient_service/service/plugins/raises_on_double_result/errors.rb +1 -1
  156. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands/format_backtrace.rb +1 -1
  157. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/commands/format_exception.rb +11 -10
  158. data/lib/convenient_service/service/plugins/rescues_result_unhandled_exceptions/middleware.rb +14 -7
  159. data/lib/convenient_service/services/run_own_method_in_organizer.rb +1 -1
  160. data/lib/convenient_service/support/abstract_method/errors.rb +1 -1
  161. data/lib/convenient_service/support/arguments.rb +3 -3
  162. data/lib/convenient_service/support/cache/key.rb +3 -3
  163. data/lib/convenient_service/support/cache.rb +1 -1
  164. data/lib/convenient_service/support/castable/errors.rb +2 -2
  165. data/lib/convenient_service/support/counter.rb +212 -0
  166. data/lib/convenient_service/support/dependency_container/commands/assert_valid_container.rb +33 -0
  167. data/lib/convenient_service/support/dependency_container/commands/assert_valid_method.rb +58 -0
  168. data/lib/convenient_service/support/dependency_container/commands/assert_valid_scope.rb +4 -3
  169. data/lib/convenient_service/support/dependency_container/commands/define_entry.rb +49 -0
  170. data/lib/convenient_service/support/dependency_container/commands.rb +3 -0
  171. data/lib/convenient_service/support/dependency_container/container.rb +23 -0
  172. data/lib/convenient_service/support/dependency_container/entry.rb +22 -0
  173. data/lib/convenient_service/support/dependency_container/errors.rb +5 -5
  174. data/lib/convenient_service/support/dependency_container/import.rb +3 -3
  175. data/lib/convenient_service/support/dependency_container.rb +3 -0
  176. data/lib/convenient_service/support/finite_loop.rb +37 -2
  177. data/lib/convenient_service/support/middleware/stack_builder.rb +1 -1
  178. data/lib/convenient_service/support/not_passed.rb +4 -3
  179. data/lib/convenient_service/support/ruby.rb +31 -0
  180. data/lib/convenient_service/support/safe_method.rb +65 -0
  181. data/lib/convenient_service/support/thread_safe_counter.rb +119 -0
  182. data/lib/convenient_service/support/undefined.rb +4 -3
  183. data/lib/convenient_service/support/unique_value.rb +69 -0
  184. data/lib/convenient_service/support.rb +4 -0
  185. data/lib/convenient_service/utils/array/errors.rb +1 -1
  186. data/lib/convenient_service/utils/array/find_last.rb +1 -1
  187. data/lib/convenient_service/utils/array/find_yield.rb +1 -1
  188. data/lib/convenient_service/utils/object/resolve_class.rb +56 -0
  189. data/lib/convenient_service/utils/object.rb +9 -0
  190. data/lib/convenient_service/version.rb +1 -1
  191. data/lib/convenient_service.rb +6 -0
  192. metadata +75 -34
  193. data/lib/convenient_service/factories/arguments.rb +0 -43
  194. data/lib/convenient_service/factories/results.rb +0 -214
  195. data/lib/convenient_service/factories/services.rb +0 -229
  196. data/lib/convenient_service/factories/step/instance.rb +0 -42
  197. data/lib/convenient_service/factories/step.rb +0 -3
  198. data/lib/convenient_service/factories/steps.rb +0 -126
  199. data/lib/convenient_service/factories.rb +0 -22
  200. data/lib/convenient_service/factory.rb +0 -21
  201. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_caller.rb +0 -74
  202. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_key.rb +0 -78
  203. data/lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_name.rb +0 -78
  204. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/commands.rb +0 -3
  205. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/data/class_methods.rb +0 -32
  206. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/data.rb +0 -74
  207. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/message/class_methods.rb +0 -34
  208. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/message.rb +0 -45
  209. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/status/class_methods.rb +0 -34
  210. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/status.rb +0 -77
  211. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/structs.rb +0 -3
  212. data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes.rb +0 -8
  213. /data/lib/convenient_service/service/plugins/has_result/entities/result/plugins/{has_jsend_status_and_attributes → has_j_send_status_and_attributes}/entities.rb +0 -0
@@ -18,7 +18,7 @@ module ConvenientService
18
18
 
19
19
  ##
20
20
  # @param array [Array]
21
- # @param block [Proc]
21
+ # @param block [Proc, nil]
22
22
  # @return [void]
23
23
  #
24
24
  def initialize(array, &block)
@@ -66,7 +66,7 @@ module ConvenientService
66
66
 
67
67
  ##
68
68
  # @param array [Array]
69
- # @param block [Proc]
69
+ # @param block [Proc, nil]
70
70
  # @return [void]
71
71
  #
72
72
  def initialize(array, &block)
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # @example
5
+ # module Musician
6
+ # end
7
+ #
8
+ # class Person
9
+ # end
10
+ #
11
+ # person = Person.new
12
+ #
13
+ # ConvenientService::Utils::Object::ResolveClass.call(42)
14
+ # # => Integer
15
+ #
16
+ # ConvenientService::Utils::Object::ResolveClass.call("foo")
17
+ # # => String
18
+ #
19
+ # ConvenientService::Utils::Object::ResolveClass.call(person)
20
+ # # => Person
21
+ #
22
+ # ConvenientService::Utils::Object::ResolveClass.call(Person)
23
+ # # => #<Class:Person>
24
+ #
25
+ # ConvenientService::Utils::Object::ResolveClass.call(Musician)
26
+ # # => #<Class:Musician>
27
+ #
28
+ module ConvenientService
29
+ module Utils
30
+ module Object
31
+ class ResolveClass < Support::Command
32
+ ##
33
+ # @!attribute [r] object
34
+ # @return [Object] Can be any type.
35
+ #
36
+ attr_reader :object
37
+
38
+ ##
39
+ # @param object [Object] Can be any type.
40
+ #
41
+ def initialize(object)
42
+ @object = object
43
+ end
44
+
45
+ ##
46
+ # @return [Class]
47
+ #
48
+ def call
49
+ return object.singleton_class if object.is_a?(::Module)
50
+
51
+ object.class
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -3,6 +3,7 @@
3
3
  require_relative "object/instance_variable_delete"
4
4
  require_relative "object/instance_variable_fetch"
5
5
  require_relative "object/memoize_including_falsy_values"
6
+ require_relative "object/resolve_class"
6
7
  require_relative "object/resolve_type"
7
8
 
8
9
  module ConvenientService
@@ -35,6 +36,14 @@ module ConvenientService
35
36
  MemoizeIncludingFalsyValues.call(...)
36
37
  end
37
38
 
39
+ ##
40
+ # @example
41
+ # ConvenientService::Utils::Object.resolve_class("foo")
42
+ #
43
+ def resolve_class(...)
44
+ ResolveClass.call(...)
45
+ end
46
+
38
47
  ##
39
48
  # @example
40
49
  # ConvenientService::Utils::Object.resolve_type("foo")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ConvenientService
4
- VERSION = "0.11.0"
4
+ VERSION = "0.12.0"
5
5
  end
@@ -36,6 +36,12 @@ require_relative "convenient_service/configs"
36
36
  #
37
37
  require_relative "convenient_service/services"
38
38
 
39
+ ##
40
+ # @internal
41
+ # Convenient Service Feature.
42
+ #
43
+ require_relative "convenient_service/feature"
44
+
39
45
  ##
40
46
  # @internal
41
47
  # Convenient Service Aliases.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: convenient_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marian Kostyk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-04 00:00:00.000000000 Z
11
+ date: 2023-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: appraisal
@@ -371,6 +371,9 @@ files:
371
371
  - docker/2.7/Dockerfile
372
372
  - docker/3.0/Dockerfile
373
373
  - docker/3.1/Dockerfile
374
+ - docker/3.2/Dockerfile
375
+ - docker/jruby-9.4/Dockerfile
376
+ - docker/truffleruby-22.3/Dockerfile
374
377
  - env.rb
375
378
  - lib/convenient_service.rb
376
379
  - lib/convenient_service/aliases.rb
@@ -426,6 +429,7 @@ files:
426
429
  - lib/convenient_service/common/plugins/has_internals/entities/internals.rb
427
430
  - lib/convenient_service/common/plugins/has_internals/entities/internals/concern.rb
428
431
  - lib/convenient_service/common/plugins/has_internals/entities/internals/plugins.rb
432
+ - lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/aliases.rb
429
433
  - lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/has_cache.rb
430
434
  - lib/convenient_service/common/plugins/has_internals/entities/internals/plugins/has_cache/concern.rb
431
435
  - lib/convenient_service/common/plugins/normalizes_env.rb
@@ -437,9 +441,12 @@ files:
437
441
  - lib/convenient_service/core.rb
438
442
  - lib/convenient_service/core/aliases.rb
439
443
  - lib/convenient_service/core/class_methods.rb
444
+ - lib/convenient_service/core/constants.rb
440
445
  - lib/convenient_service/core/entities.rb
441
446
  - lib/convenient_service/core/entities/classic_middleware.rb
442
447
  - lib/convenient_service/core/entities/config.rb
448
+ - lib/convenient_service/core/entities/config/commands.rb
449
+ - lib/convenient_service/core/entities/config/commands/track_method_missing_commit_trigger.rb
443
450
  - lib/convenient_service/core/entities/config/entities.rb
444
451
  - lib/convenient_service/core/entities/config/entities/concerns.rb
445
452
  - lib/convenient_service/core/entities/config/entities/concerns/entities.rb
@@ -468,6 +475,7 @@ files:
468
475
  - lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/concern/class_methods.rb
469
476
  - lib/convenient_service/core/entities/config/entities/method_middlewares/entities/container/concern/instance_methods.rb
470
477
  - lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware.rb
478
+ - lib/convenient_service/core/entities/config/entities/method_middlewares/entities/middleware_creator.rb
471
479
  - lib/convenient_service/core/entities/config/entities/method_middlewares/entities/stack.rb
472
480
  - lib/convenient_service/core/entities/config/errors.rb
473
481
  - lib/convenient_service/core/instance_methods.rb
@@ -584,20 +592,15 @@ files:
584
592
  - lib/convenient_service/examples/standard/request_params/utils/object.rb
585
593
  - lib/convenient_service/examples/standard/request_params/utils/object/blank.rb
586
594
  - lib/convenient_service/examples/standard/request_params/utils/object/present.rb
587
- - lib/convenient_service/factories.rb
588
- - lib/convenient_service/factories/arguments.rb
589
- - lib/convenient_service/factories/results.rb
590
- - lib/convenient_service/factories/services.rb
591
- - lib/convenient_service/factories/step.rb
592
- - lib/convenient_service/factories/step/instance.rb
593
- - lib/convenient_service/factories/steps.rb
594
- - lib/convenient_service/factory.rb
595
+ - lib/convenient_service/feature.rb
595
596
  - lib/convenient_service/logger.rb
596
597
  - lib/convenient_service/rspec.rb
597
598
  - lib/convenient_service/rspec/helpers.rb
598
599
  - lib/convenient_service/rspec/helpers/custom.rb
599
600
  - lib/convenient_service/rspec/helpers/custom/ignoring_error.rb
601
+ - lib/convenient_service/rspec/helpers/custom/in_threads.rb
600
602
  - lib/convenient_service/rspec/helpers/custom/stub_service.rb
603
+ - lib/convenient_service/rspec/helpers/custom/stub_service/constants.rb
601
604
  - lib/convenient_service/rspec/helpers/custom/stub_service/entities.rb
602
605
  - lib/convenient_service/rspec/helpers/custom/stub_service/entities/result_spec.rb
603
606
  - lib/convenient_service/rspec/helpers/custom/stub_service/entities/stubbed_service.rb
@@ -606,6 +609,7 @@ files:
606
609
  - lib/convenient_service/rspec/helpers/custom/wrap_method/entities/wrapped_method.rb
607
610
  - lib/convenient_service/rspec/helpers/custom/wrap_method/errors.rb
608
611
  - lib/convenient_service/rspec/helpers/ignoring_error.rb
612
+ - lib/convenient_service/rspec/helpers/in_threads.rb
609
613
  - lib/convenient_service/rspec/helpers/stub_service.rb
610
614
  - lib/convenient_service/rspec/helpers/wrap_method.rb
611
615
  - lib/convenient_service/rspec/matchers.rb
@@ -640,6 +644,7 @@ files:
640
644
  - lib/convenient_service/rspec/matchers/custom/delegate_to/entities/matcher/entities/chainings_collection.rb
641
645
  - lib/convenient_service/rspec/matchers/custom/delegate_to/entities/matcher/entities/chainings_collection/errors.rb
642
646
  - lib/convenient_service/rspec/matchers/custom/delegate_to/entities/matcher/entities/delegation.rb
647
+ - lib/convenient_service/rspec/matchers/custom/export.rb
643
648
  - lib/convenient_service/rspec/matchers/custom/extend_module.rb
644
649
  - lib/convenient_service/rspec/matchers/custom/have_abstract_method.rb
645
650
  - lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
@@ -657,6 +662,7 @@ files:
657
662
  - lib/convenient_service/rspec/matchers/custom/results/base/commands/generate_expected_step_part.rb
658
663
  - lib/convenient_service/rspec/matchers/custom/results/base/commands/generate_got_step_part.rb
659
664
  - lib/convenient_service/rspec/matchers/custom/results/base/commands/match_result_step.rb
665
+ - lib/convenient_service/rspec/matchers/custom/results/base/constants.rb
660
666
  - lib/convenient_service/rspec/matchers/custom/results/base/errors.rb
661
667
  - lib/convenient_service/rspec/matchers/custom/results/be_error.rb
662
668
  - lib/convenient_service/rspec/matchers/custom/results/be_failure.rb
@@ -666,6 +672,7 @@ files:
666
672
  - lib/convenient_service/rspec/matchers/custom/results/be_success.rb
667
673
  - lib/convenient_service/rspec/matchers/custom/singleton_prepend_module.rb
668
674
  - lib/convenient_service/rspec/matchers/delegate_to.rb
675
+ - lib/convenient_service/rspec/matchers/export.rb
669
676
  - lib/convenient_service/rspec/matchers/extend_module.rb
670
677
  - lib/convenient_service/rspec/matchers/have_abstract_method.rb
671
678
  - lib/convenient_service/rspec/matchers/have_alias_method.rb
@@ -697,10 +704,8 @@ files:
697
704
  - lib/convenient_service/service/plugins/can_have_steps/entities/method.rb
698
705
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/commands.rb
699
706
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method.rb
700
- - lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_caller.rb
701
707
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_direction.rb
702
- - lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_key.rb
703
- - lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_name.rb
708
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/cast_method_factory.rb
704
709
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb
705
710
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/concern.rb
706
711
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/concern/class_methods.rb
@@ -719,6 +724,19 @@ files:
719
724
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/directions/base.rb
720
725
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/directions/input.rb
721
726
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/directions/output.rb
727
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories.rb
728
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/base.rb
729
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash.rb
730
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/base.rb
731
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/proc_value.rb
732
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/raw_value.rb
733
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/reassignment_value.rb
734
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/string_value.rb
735
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/hash/symbol_value.rb
736
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/method.rb
737
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/reassignment.rb
738
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/string.rb
739
+ - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/factories/symbol.rb
722
740
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/key.rb
723
741
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/name.rb
724
742
  - lib/convenient_service/service/plugins/can_have_steps/entities/method/entities/values.rb
@@ -734,6 +752,7 @@ files:
734
752
  - lib/convenient_service/service/plugins/can_have_steps/entities/step/concern/instance_methods.rb
735
753
  - lib/convenient_service/service/plugins/can_have_steps/entities/step/errors.rb
736
754
  - lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins.rb
755
+ - lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/aliases.rb
737
756
  - lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_parent_result.rb
738
757
  - lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/can_have_parent_result/middleware.rb
739
758
  - lib/convenient_service/service/plugins/can_have_steps/entities/step/plugins/has_inspect.rb
@@ -760,8 +779,10 @@ files:
760
779
  - lib/convenient_service/service/plugins/has_result/entities/result.rb
761
780
  - lib/convenient_service/service/plugins/has_result/entities/result/concern.rb
762
781
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins.rb
782
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/aliases.rb
763
783
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_have_parent_result.rb
764
784
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_have_parent_result/concern.rb
785
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_have_parent_result/constants.rb
765
786
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_have_parent_result/initialize.rb
766
787
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_have_parent_result/initialize/middleware.rb
767
788
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_have_parent_result/to_kwargs.rb
@@ -770,27 +791,37 @@ files:
770
791
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/can_recalculate_result/concern.rb
771
792
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_inspect.rb
772
793
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_inspect/concern.rb
773
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes.rb
774
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/commands.rb
775
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/commands/cast_jsend_attributes.rb
776
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/concern.rb
777
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/concern/class_methods.rb
778
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/concern/instance_methods.rb
779
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities.rb
780
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/code.rb
781
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/code/concern.rb
782
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/code/concern/class_methods.rb
783
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/code/concern/instance_methods.rb
784
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/data.rb
785
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/data/class_methods.rb
786
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/message.rb
787
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/message/class_methods.rb
788
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/status.rb
789
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/entities/status/class_methods.rb
790
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/errors.rb
791
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/middleware.rb
792
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/structs.rb
793
- - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_jsend_status_and_attributes/structs/jsend_attributes.rb
794
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes.rb
795
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands.rb
796
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/cast_j_send_attributes.rb
797
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_code_class.rb
798
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_data_class.rb
799
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_message_class.rb
800
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/commands/create_status_class.rb
801
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/concern.rb
802
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/concern/class_methods.rb
803
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/concern/instance_methods.rb
804
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities.rb
805
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code.rb
806
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/concern.rb
807
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/concern/class_methods.rb
808
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/code/concern/instance_methods.rb
809
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data.rb
810
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern.rb
811
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern/class_methods.rb
812
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/data/concern/instance_methods.rb
813
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message.rb
814
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern.rb
815
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern/class_methods.rb
816
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/message/concern/instance_methods.rb
817
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status.rb
818
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern.rb
819
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern/class_methods.rb
820
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/entities/status/concern/instance_methods.rb
821
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/errors.rb
822
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/middleware.rb
823
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/structs.rb
824
+ - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_j_send_status_and_attributes/structs/j_send_attributes.rb
794
825
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_result_short_syntax.rb
795
826
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_result_short_syntax/concern.rb
796
827
  - lib/convenient_service/service/plugins/has_result/entities/result/plugins/has_step.rb
@@ -863,18 +894,24 @@ files:
863
894
  - lib/convenient_service/support/command.rb
864
895
  - lib/convenient_service/support/concern.rb
865
896
  - lib/convenient_service/support/copyable.rb
897
+ - lib/convenient_service/support/counter.rb
866
898
  - lib/convenient_service/support/delegate.rb
867
899
  - lib/convenient_service/support/dependency_container.rb
868
900
  - lib/convenient_service/support/dependency_container/commands.rb
901
+ - lib/convenient_service/support/dependency_container/commands/assert_valid_container.rb
902
+ - lib/convenient_service/support/dependency_container/commands/assert_valid_method.rb
869
903
  - lib/convenient_service/support/dependency_container/commands/assert_valid_scope.rb
870
904
  - lib/convenient_service/support/dependency_container/commands/create_methods_module.rb
905
+ - lib/convenient_service/support/dependency_container/commands/define_entry.rb
871
906
  - lib/convenient_service/support/dependency_container/commands/import_method.rb
872
907
  - lib/convenient_service/support/dependency_container/constants.rb
908
+ - lib/convenient_service/support/dependency_container/container.rb
873
909
  - lib/convenient_service/support/dependency_container/entities.rb
874
910
  - lib/convenient_service/support/dependency_container/entities/method.rb
875
911
  - lib/convenient_service/support/dependency_container/entities/method_collection.rb
876
912
  - lib/convenient_service/support/dependency_container/entities/namespace.rb
877
913
  - lib/convenient_service/support/dependency_container/entities/namespace_collection.rb
914
+ - lib/convenient_service/support/dependency_container/entry.rb
878
915
  - lib/convenient_service/support/dependency_container/errors.rb
879
916
  - lib/convenient_service/support/dependency_container/export.rb
880
917
  - lib/convenient_service/support/dependency_container/import.rb
@@ -887,7 +924,10 @@ files:
887
924
  - lib/convenient_service/support/not_passed.rb
888
925
  - lib/convenient_service/support/raw_value.rb
889
926
  - lib/convenient_service/support/ruby.rb
927
+ - lib/convenient_service/support/safe_method.rb
928
+ - lib/convenient_service/support/thread_safe_counter.rb
890
929
  - lib/convenient_service/support/undefined.rb
930
+ - lib/convenient_service/support/unique_value.rb
891
931
  - lib/convenient_service/support/version.rb
892
932
  - lib/convenient_service/support/version/null_version.rb
893
933
  - lib/convenient_service/utils.rb
@@ -919,6 +959,7 @@ files:
919
959
  - lib/convenient_service/utils/object/instance_variable_delete.rb
920
960
  - lib/convenient_service/utils/object/instance_variable_fetch.rb
921
961
  - lib/convenient_service/utils/object/memoize_including_falsy_values.rb
962
+ - lib/convenient_service/utils/object/resolve_class.rb
922
963
  - lib/convenient_service/utils/object/resolve_type.rb
923
964
  - lib/convenient_service/utils/proc.rb
924
965
  - lib/convenient_service/utils/proc/conjunct.rb
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # WIP: Factory API is NOT well-thought yet. It will be revisited and completely refactored at any time.
5
- #
6
- module ConvenientService
7
- module Factories
8
- module Arguments
9
- ##
10
- # @return [Array]
11
- #
12
- # @example Default.
13
- #
14
- # hello(*args)
15
- #
16
- def create_args
17
- [:foo, :bar]
18
- end
19
-
20
- ##
21
- # @return [Hash]
22
- #
23
- # @example Default.
24
- #
25
- # hello(**kwargs)
26
- #
27
- def create_kwargs
28
- {foo: :bar, baz: :qux}
29
- end
30
-
31
- ##
32
- # @return [Hash]
33
- #
34
- # @example Default.
35
- #
36
- # hello(&block)
37
- #
38
- def create_block
39
- proc { :foo }
40
- end
41
- end
42
- end
43
- end
@@ -1,214 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # WIP: Factory API is NOT well-thought yet. It will be revisited and completely refactored at any time.
5
- #
6
- module ConvenientService
7
- module Factories
8
- module Results
9
- ##
10
- # @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
11
- #
12
- # @example Default.
13
- #
14
- # class Service
15
- # include ConvenientService::Standard::Config
16
- #
17
- # def result
18
- # success # `result` is return value
19
- # end
20
- # end
21
- #
22
- def create_result
23
- service_class = create_service_class
24
-
25
- service_class.result
26
- end
27
-
28
- ##
29
- # @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
30
- #
31
- # @example Default.
32
- #
33
- # class Service
34
- # include ConvenientService::Standard::Config
35
- #
36
- # def result
37
- # success # `result` is return value
38
- # end
39
- # end
40
- #
41
- def create_result_without_step
42
- service_class = create_service_class
43
-
44
- service_class.result
45
- end
46
-
47
- ##
48
- # @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
49
- #
50
- # @example Default.
51
- #
52
- # class Service
53
- # include ConvenientService::Standard::Config
54
- #
55
- # step Step # `result` is return value
56
- # end
57
- #
58
- def create_result_with_step(...)
59
- create_result_with_service_step(...)
60
- end
61
-
62
- ##
63
- # @param service_step [Class]
64
- # @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
65
- #
66
- # @example Default.
67
- #
68
- # class Service
69
- # include ConvenientService::Standard::Config
70
- #
71
- # step Step # `result` is return value
72
- # end
73
- #
74
- # @example When `service_step` is passed.
75
- #
76
- # class Service
77
- # include ConvenientService::Standard::Config
78
- #
79
- # step service_step # `result` is return value
80
- # end
81
- #
82
- def create_result_with_service_step(service_step: Support::NOT_PASSED)
83
- service_step_class = (service_step == Support::NOT_PASSED) ? create_service_step_class : service_step
84
-
85
- service_class = create_service_class(steps: [service_step_class])
86
-
87
- service_class.result
88
- end
89
-
90
- ##
91
- # @param method_step [Symbol]
92
- # @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
93
- #
94
- # @example Default.
95
- #
96
- # class Service
97
- # include ConvenientService::Standard::Config
98
- #
99
- # step :validate # `result` is return value
100
- # end
101
- #
102
- # @example When `method_step` is passed.
103
- #
104
- # class Service
105
- # include ConvenientService::Standard::Config
106
- #
107
- # step method_step # `result` is return value
108
- # end
109
- #
110
- def create_result_with_method_step(method_step: Support::NOT_PASSED)
111
- method_step = (method_step == Support::NOT_PASSED) ? create_method_step : method_step
112
-
113
- service_class = create_service_class(steps: [method_step])
114
-
115
- service_class.result
116
- end
117
-
118
- ##
119
- # @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
120
- #
121
- # @example Default.
122
- #
123
- # class Service
124
- # include ConvenientService::Standard::Config
125
- #
126
- # step :result # `result` is return value
127
- # end
128
- #
129
- def create_result_with_result_method_step
130
- service_class = create_service_class(steps: [:result])
131
-
132
- service_class.result
133
- end
134
-
135
- ##
136
- # @return [Hash]
137
- #
138
- # @example Default.
139
- #
140
- # {
141
- # service: result.service,
142
- # status: :success,
143
- # data: {foo: :bar},
144
- # message: "",
145
- # code: :default_success
146
- # }
147
- #
148
- def create_result_attributes
149
- create_result.jsend_attributes.to_h
150
- end
151
-
152
- ##
153
- # @return [Hash]
154
- #
155
- # @example Default.
156
- #
157
- # {
158
- # service: result.service,
159
- # status: :success,
160
- # data: {foo: :bar},
161
- # message: "",
162
- # code: :default_success,
163
- # parent: result.parent
164
- # }
165
- #
166
- def create_result_attributes_with_parent(parent: Support::NOT_PASSED)
167
- parent = (parent == Support::NOT_PASSED) ? create_result_parent : parent
168
-
169
- result_attributes = create_result_attributes
170
-
171
- result_attributes.merge(parent: parent)
172
- end
173
-
174
- ##
175
- # @return [Hash]
176
- #
177
- # @example Default.
178
- #
179
- # {
180
- # service: result.service,
181
- # status: :success,
182
- # data: {foo: :bar},
183
- # message: "",
184
- # code: :default_success,
185
- # step: result.step
186
- # }
187
- #
188
- def create_result_attributes_with_step(step: Support::NOT_PASSED)
189
- step = (step == Support::NOT_PASSED) ? create_result_step : step
190
-
191
- result_attributes = create_result_attributes
192
-
193
- result_attributes.merge(step: step)
194
- end
195
-
196
- ##
197
- # @return [ConvenientService::Service::Plugins::HasResult::Entities::Result]
198
- #
199
- # @example Default.
200
- #
201
- # class Service
202
- # include ConvenientService::Standard::Config
203
- #
204
- # def result
205
- # success # `result_parent` is return value
206
- # end
207
- # end
208
- #
209
- def create_result_parent
210
- create_result
211
- end
212
- end
213
- end
214
- end