eac_tools 0.76.1 → 0.77.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 (332) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +23 -38
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm-eac_generic_base0/Gemfile +2 -2
  5. data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +5 -3
  6. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base/apply.rb +1 -1
  7. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base/file_resource_name_helper.rb +2 -2
  8. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base.rb +1 -1
  9. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb +1 -1
  10. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec.rb +1 -1
  11. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/sources/base_spec.rb +1 -1
  12. data/sub/avm-eac_generic_base0/spec/rubocop_spec.rb +1 -1
  13. data/sub/avm-eac_generic_base0/spec/spec_helper.rb +1 -1
  14. data/sub/avm-tools/avm-tools.gemspec +6 -4
  15. data/sub/avm-tools/lib/avm/tools/runner/instance/system.rb +65 -0
  16. data/sub/avm-tools/lib/avm/tools/runner/source/issue/complete.rb +4 -4
  17. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_dump.rb +1 -1
  18. data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
  19. data/sub/avm-tools/spec/dummy/avm-tools_stub/avm-tools.gemspec +1 -0
  20. data/sub/avm-tools/spec/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +1 -0
  21. data/sub/avm-tools/spec/lib/avm/projects/stereotypes/git_subrepo/publish_spec.rb +6 -3
  22. data/sub/avm-tools/spec/lib/avm/projects/stereotypes/git_subrepo/warp_spec.rb +2 -2
  23. data/sub/avm-tools/spec/lib/avm/tools/runner/files/rotate_spec.rb +2 -2
  24. data/sub/avm-tools/spec/lib/avm/tools/runner/git/deploy_spec.rb +6 -6
  25. metadata +11 -311
  26. data/sub/eac_docker/Gemfile +0 -8
  27. data/sub/eac_docker/eac_docker.gemspec +0 -19
  28. data/sub/eac_docker/lib/eac_docker/container.rb +0 -84
  29. data/sub/eac_docker/lib/eac_docker/debug.rb +0 -15
  30. data/sub/eac_docker/lib/eac_docker/executables.rb +0 -18
  31. data/sub/eac_docker/lib/eac_docker/images/base.rb +0 -14
  32. data/sub/eac_docker/lib/eac_docker/images/coded.rb +0 -43
  33. data/sub/eac_docker/lib/eac_docker/images/named.rb +0 -30
  34. data/sub/eac_docker/lib/eac_docker/images/templatized.rb +0 -51
  35. data/sub/eac_docker/lib/eac_docker/images.rb +0 -9
  36. data/sub/eac_docker/lib/eac_docker/registry.rb +0 -17
  37. data/sub/eac_docker/lib/eac_docker/rspec/setup.rb +0 -17
  38. data/sub/eac_docker/lib/eac_docker/rspec/stub_image.rb +0 -40
  39. data/sub/eac_docker/lib/eac_docker/rspec.rb +0 -9
  40. data/sub/eac_docker/lib/eac_docker/version.rb +0 -5
  41. data/sub/eac_docker/lib/eac_docker.rb +0 -7
  42. data/sub/eac_docker/spec/lib/eac_docker/executables_spec.rb +0 -9
  43. data/sub/eac_docker/spec/lib/eac_docker/images/coded_spec.rb +0 -12
  44. data/sub/eac_docker/spec/lib/eac_docker/images/coded_spec_files/image1/Dockerfile +0 -1
  45. data/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +0 -18
  46. data/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec_files/stub_docker_image/Dockerfile +0 -1
  47. data/sub/eac_docker/spec/rubocop_spec.rb +0 -3
  48. data/sub/eac_docker/spec/spec_helper.rb +0 -4
  49. data/sub/eac_ruby_base0/Gemfile +0 -8
  50. data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +0 -21
  51. data/sub/eac_ruby_base0/lib/eac_ruby_base0/application.rb +0 -88
  52. data/sub/eac_ruby_base0/lib/eac_ruby_base0/application_xdg.rb +0 -34
  53. data/sub/eac_ruby_base0/lib/eac_ruby_base0/core_ext.rb +0 -5
  54. data/sub/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +0 -31
  55. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/class/jobs_runner.rb +0 -10
  56. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/class.rb +0 -4
  57. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches.rb +0 -4
  58. data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec/setup.rb +0 -14
  59. data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec.rb +0 -9
  60. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/contexts.rb +0 -52
  61. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/prepend.rb +0 -39
  62. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +0 -37
  63. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with.rb +0 -9
  64. data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +0 -5
  65. data/sub/eac_ruby_base0/lib/eac_ruby_base0.rb +0 -7
  66. data/sub/eac_ruby_base0/spec/rubocop_spec.rb +0 -3
  67. data/sub/eac_ruby_base0/spec/spec_helper.rb +0 -4
  68. data/sub/eac_ruby_utils/Gemfile +0 -8
  69. data/sub/eac_ruby_utils/MIT-LICENCE +0 -16
  70. data/sub/eac_ruby_utils/README.rdoc +0 -3
  71. data/sub/eac_ruby_utils/eac_ruby_utils.gemspec +0 -25
  72. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_abstract.rb +0 -100
  73. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/array_accessor.rb +0 -25
  74. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/base_accessor.rb +0 -57
  75. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/boolean_accessor.rb +0 -16
  76. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb +0 -20
  77. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/common_accessor.rb +0 -30
  78. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/enumerable_accessor.rb +0 -52
  79. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/hash_accessor.rb +0 -57
  80. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/instance_methods.rb +0 -21
  81. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/set_accessor.rb +0 -25
  82. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable.rb +0 -15
  83. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_instance_method.rb +0 -34
  84. data/sub/eac_ruby_utils/lib/eac_ruby_utils/arguments_consumer.rb +0 -81
  85. data/sub/eac_ruby_utils/lib/eac_ruby_utils/bit.rb +0 -46
  86. data/sub/eac_ruby_utils/lib/eac_ruby_utils/bit_array.rb +0 -81
  87. data/sub/eac_ruby_utils/lib/eac_ruby_utils/blank_not_blank.rb +0 -19
  88. data/sub/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb +0 -31
  89. data/sub/eac_ruby_utils/lib/eac_ruby_utils/by_reference.rb +0 -23
  90. data/sub/eac_ruby_utils/lib/eac_ruby_utils/byte.rb +0 -105
  91. data/sub/eac_ruby_utils/lib/eac_ruby_utils/byte_array.rb +0 -36
  92. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern/class_setup.rb +0 -52
  93. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern/module_setup.rb +0 -41
  94. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern.rb +0 -20
  95. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb +0 -36
  96. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb +0 -39
  97. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/instance_initialize.rb +0 -64
  98. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/super_args.rb +0 -54
  99. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor.rb +0 -94
  100. data/sub/eac_ruby_utils/lib/eac_ruby_utils/compact.rb +0 -22
  101. data/sub/eac_ruby_utils/lib/eac_ruby_utils/compare_by.rb +0 -28
  102. data/sub/eac_ruby_utils/lib/eac_ruby_utils/context.rb +0 -33
  103. data/sub/eac_ruby_utils/lib/eac_ruby_utils/contextualizable.rb +0 -21
  104. data/sub/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb +0 -7
  105. data/sub/eac_ruby_utils/lib/eac_ruby_utils/custom_format.rb +0 -53
  106. data/sub/eac_ruby_utils/lib/eac_ruby_utils/enum.rb +0 -102
  107. data/sub/eac_ruby_utils/lib/eac_ruby_utils/enumerables_methods.rb +0 -42
  108. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/append_command_options.rb +0 -38
  109. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/concat.rb +0 -41
  110. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/debugging.rb +0 -19
  111. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/execution.rb +0 -52
  112. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/extra_options.rb +0 -28
  113. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command.rb +0 -45
  114. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_env.rb +0 -28
  115. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/envvars.rb +0 -27
  116. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/extra_options.rb +0 -23
  117. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb +0 -67
  118. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/composite_command.rb +0 -45
  119. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/executable.rb +0 -93
  120. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_error.rb +0 -8
  121. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_result.rb +0 -45
  122. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/file.rb +0 -22
  123. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/local_env.rb +0 -17
  124. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/process.rb +0 -27
  125. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/spawn.rb +0 -32
  126. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/dasho_options.rb +0 -53
  127. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/identity_file.rb +0 -25
  128. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/quiet.rb +0 -24
  129. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/terminal.rb +0 -34
  130. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env.rb +0 -75
  131. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs.rb +0 -23
  132. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/clearable_directory.rb +0 -57
  133. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/extname.rb +0 -30
  134. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/directory.rb +0 -16
  135. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/file.rb +0 -34
  136. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp.rb +0 -52
  137. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs.rb +0 -9
  138. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem.rb +0 -80
  139. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry.rb +0 -34
  140. data/sub/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb +0 -29
  141. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/class_methods.rb +0 -14
  142. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/instance_methods.rb +0 -30
  143. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/integer_list.rb +0 -23
  144. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/item.rb +0 -48
  145. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +0 -129
  146. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/lists.rb +0 -51
  147. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/string_list.rb +0 -19
  148. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/symbol_list.rb +0 -19
  149. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable.rb +0 -17
  150. data/sub/eac_ruby_utils/lib/eac_ruby_utils/local_time_zone.rb +0 -48
  151. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_all_gems.rb +0 -4
  152. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb +0 -47
  153. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/module_i18n_translate.rb +0 -74
  154. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales.rb +0 -9
  155. data/sub/eac_ruby_utils/lib/eac_ruby_utils/method_class.rb +0 -30
  156. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/base.rb +0 -34
  157. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/hash.rb +0 -20
  158. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/set.rb +0 -19
  159. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable.rb +0 -9
  160. data/sub/eac_ruby_utils/lib/eac_ruby_utils/options_consumer.rb +0 -62
  161. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patch.rb +0 -11
  162. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable/uri/query_value.rb +0 -37
  163. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable/uri.rb +0 -4
  164. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable.rb +0 -4
  165. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/abstract.rb +0 -9
  166. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/common_constructor.rb +0 -9
  167. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/method_class.rb +0 -9
  168. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/self_included_modules.rb +0 -7
  169. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/settings_provider.rb +0 -10
  170. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/static_method_class.rb +0 -9
  171. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class.rb +0 -4
  172. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerable/boolean_combinations.rb +0 -45
  173. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerable.rb +0 -4
  174. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator/current.rb +0 -9
  175. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator/stopped.rb +0 -14
  176. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator.rb +0 -4
  177. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/options_consumer.rb +0 -10
  178. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/sym_keys_hash.rb +0 -10
  179. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/to_struct.rb +0 -10
  180. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash.rb +0 -5
  181. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/nyi.rb +0 -10
  182. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel.rb +0 -4
  183. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/abstract_methods.rb +0 -10
  184. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_abstract.rb +0 -14
  185. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_immutable.rb +0 -10
  186. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_instance_method.rb +0 -10
  187. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb +0 -9
  188. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/compare_by.rb +0 -9
  189. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/context.rb +0 -11
  190. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/i18n_translate.rb +0 -9
  191. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/immutable.rb +0 -11
  192. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/listable.rb +0 -10
  193. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/module_parent.rb +0 -5
  194. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/patch.rb +0 -9
  195. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/require_sub.rb +0 -9
  196. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/simple_cache.rb +0 -10
  197. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/speaker.rb +0 -9
  198. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module.rb +0 -4
  199. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/asserts.rb +0 -25
  200. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/call_if_proc.rb +0 -11
  201. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/compact.rb +0 -20
  202. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb +0 -51
  203. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/i18n_translate.rb +0 -13
  204. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_nil.rb +0 -17
  205. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_present.rb +0 -19
  206. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_respond.rb +0 -22
  207. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_bool.rb +0 -12
  208. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_pathname.rb +0 -15
  209. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_uri.rb +0 -15
  210. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object.rb +0 -5
  211. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/assert_parent.rb +0 -12
  212. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/basename_noext.rb +0 -10
  213. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/basename_sub.rb +0 -13
  214. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/child_of.rb +0 -16
  215. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/if_exist.rb +0 -10
  216. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/mkpath_s.rb +0 -12
  217. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/parent_n.rb +0 -11
  218. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/readlink_r.rb +0 -11
  219. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/reqdir_glob.rb +0 -13
  220. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname.rb +0 -4
  221. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/if_match.rb +0 -16
  222. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/to_parser.rb +0 -10
  223. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp.rb +0 -4
  224. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string/delimited.rb +0 -16
  225. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb +0 -11
  226. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string.rb +0 -4
  227. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/time/required_zone.rb +0 -11
  228. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/time.rb +0 -4
  229. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches.rb +0 -4
  230. data/sub/eac_ruby_utils/lib/eac_ruby_utils/recursive_builder.rb +0 -51
  231. data/sub/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +0 -39
  232. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/base.rb +0 -80
  233. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/sub_file.rb +0 -59
  234. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb +0 -11
  235. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/default_setup.rb +0 -20
  236. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup/conditionals.rb +0 -17
  237. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup/setup_manager.rb +0 -17
  238. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup.rb +0 -27
  239. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup_manager.rb +0 -49
  240. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/stub_speaker.rb +0 -39
  241. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec.rb +0 -9
  242. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/command.rb +0 -32
  243. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_clean_environment.rb +0 -71
  244. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_replace_objects/replace_instance_method.rb +0 -36
  245. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_replace_objects.rb +0 -52
  246. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby.rb +0 -9
  247. data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb +0 -78
  248. data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb +0 -50
  249. data/sub/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb +0 -77
  250. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb +0 -64
  251. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/sender.rb +0 -32
  252. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker.rb +0 -16
  253. data/sub/eac_ruby_utils/lib/eac_ruby_utils/static_method_class.rb +0 -12
  254. data/sub/eac_ruby_utils/lib/eac_ruby_utils/string_delimited.rb +0 -70
  255. data/sub/eac_ruby_utils/lib/eac_ruby_utils/struct.rb +0 -63
  256. data/sub/eac_ruby_utils/lib/eac_ruby_utils/unimplemented_method_error.rb +0 -6
  257. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +0 -5
  258. data/sub/eac_ruby_utils/lib/eac_ruby_utils/wildcards.rb +0 -26
  259. data/sub/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb +0 -105
  260. data/sub/eac_ruby_utils/lib/eac_ruby_utils.rb +0 -6
  261. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_abstract_spec.rb +0 -94
  262. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/array_accessor_spec.rb +0 -43
  263. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/common_accessor_spec.rb +0 -57
  264. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/hash_accessor_spec.rb +0 -42
  265. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/set_accessor_spec.rb +0 -43
  266. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/arguments_consumer_spec.rb +0 -17
  267. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/bit_array_spec.rb +0 -22
  268. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb +0 -16
  269. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/byte_spec.rb +0 -54
  270. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/common_concern_spec.rb +0 -65
  271. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/common_constructor_spec.rb +0 -151
  272. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compact_spec.rb +0 -20
  273. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compare_by_spec.rb +0 -38
  274. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/custom_format_spec.rb +0 -60
  275. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb +0 -43
  276. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enumerables_methods_spec.rb +0 -50
  277. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/base_example.rb +0 -97
  278. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/local_env_spec.rb +0 -11
  279. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/ssh_env_spec.rb +0 -17
  280. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/executable_spec.rb +0 -37
  281. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/ssh_env_spec.rb +0 -25
  282. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/extname_spec.rb +0 -18
  283. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp/directory_spec.rb +0 -12
  284. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp_spec.rb +0 -52
  285. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/inflector_spec.rb +0 -16
  286. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/listable_spec.rb +0 -225
  287. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/local_time_zone_spec.rb +0 -17
  288. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/method_class_spec.rb +0 -46
  289. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/hash_spec.rb +0 -57
  290. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/set_spec.rb +0 -57
  291. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/options_consumer_spec.rb +0 -80
  292. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/addressable/uri/query_value_spec.rb +0 -25
  293. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/abstract_spec.rb +0 -25
  294. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/acts_as_abstract_spec.rb +0 -14
  295. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/method_class_spec.rb +0 -20
  296. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/self_included_modules_spec.rb +0 -30
  297. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/static_method_class_spec.rb +0 -20
  298. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerable/boolean_combinations_spec.rb +0 -39
  299. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerator/current_spec.rb +0 -26
  300. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerator/stopped_spec.rb +0 -32
  301. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/options_consumer_spec.rb +0 -17
  302. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/sym_keys_hash_spec.rb +0 -13
  303. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/compare_by_spec.rb +0 -36
  304. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/listable_spec.rb +0 -15
  305. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/simple_cache_spec.rb +0 -15
  306. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/speaker_spec.rb +0 -13
  307. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/call_if_proc_spec.rb +0 -11
  308. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/compact_spec.rb +0 -20
  309. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/if_present_spec.rb +0 -13
  310. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec_files/path/my_stub_with_template +0 -1
  311. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/assert_parent_spec.rb +0 -21
  312. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_noext_spec.rb +0 -26
  313. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_sub_spec.rb +0 -17
  314. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/child_of_spec.rb +0 -26
  315. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/parent_n_spec.rb +0 -33
  316. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/string/delimited_spec.rb +0 -34
  317. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/recursive_builder_spec.rb +0 -65
  318. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec/stubbed_module_a.rb +0 -6
  319. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec/stubbed_not_module.rb +0 -6
  320. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec.rb +0 -19
  321. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/rspec/setup/setup_manager_spec.rb +0 -17
  322. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/ruby/on_clean_environment_spec.rb +0 -33
  323. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/ruby/on_replace_objects_spec.rb +0 -67
  324. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb +0 -64
  325. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/simple_cache_spec.rb +0 -129
  326. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/static_method_class_spec.rb +0 -44
  327. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb +0 -57
  328. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/wildcards_spec.rb +0 -27
  329. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb +0 -76
  330. data/sub/eac_ruby_utils/spec/locales/pt-BR.yml +0 -58
  331. data/sub/eac_ruby_utils/spec/rubocop_check_spec.rb +0 -3
  332. data/sub/eac_ruby_utils/spec/spec_helper.rb +0 -15
@@ -1,77 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- module SimpleCache
5
- UNCACHED_METHOD_NAME_SUFFIX = '_uncached'
6
- UNCACHED_METHOD_PATTERN = /
7
- \A(\s+)_#{::Regexp.quote(UNCACHED_METHOD_NAME_SUFFIX)}([\!\?]?)\z
8
- /x.freeze
9
-
10
- class << self
11
- def uncached_method_name(method_name)
12
- method_name = method_name.to_s
13
- end_mark = nil
14
- if %w[! ?].any? { |mark| method_name.end_with?(mark) }
15
- end_mark = method_name[-1]
16
- method_name = method_name[0..-2]
17
- end
18
- "#{method_name}#{UNCACHED_METHOD_NAME_SUFFIX}#{end_mark}"
19
- end
20
- end
21
-
22
- def method_missing(method, *args, &block)
23
- if respond_to?(uncached_method_name(method), true)
24
- call_method_with_cache(method, args, &block)
25
- else
26
- super
27
- end
28
- end
29
-
30
- def respond_to_missing?(method, include_all = false)
31
- if method.to_s.end_with?('_uncached')
32
- super
33
- else
34
- respond_to?("#{method}_uncached", true) || super
35
- end
36
- end
37
-
38
- def reset_cache(*keys)
39
- if keys.any?
40
- keys.each { |key| cache_keys.delete(sanitize_cache_key(key)) }
41
- else
42
- @cache_keys = nil
43
- end
44
- end
45
-
46
- def sanitize_cache_key(key)
47
- key.to_s.to_sym
48
- end
49
-
50
- protected
51
-
52
- def uncached_method_name(original_method_name)
53
- ::EacRubyUtils::SimpleCache.uncached_method_name(original_method_name)
54
- end
55
-
56
- private
57
-
58
- def call_method_with_cache(method, args, &block)
59
- raise 'Não é possível realizar o cache de métodos com bloco' if block
60
-
61
- key = ([method] + args).join('@@@')
62
- unless cache_keys.key?(sanitize_cache_key(key))
63
- uncached_value = call_uncached_method(method, args)
64
- cache_keys[sanitize_cache_key(key)] = uncached_value
65
- end
66
- cache_keys[sanitize_cache_key(key)]
67
- end
68
-
69
- def call_uncached_method(method, args)
70
- send(uncached_method_name(method), *args)
71
- end
72
-
73
- def cache_keys
74
- @cache_keys ||= {}
75
- end
76
- end
77
- end
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/acts_as_abstract'
4
-
5
- module EacRubyUtils
6
- module Speaker
7
- module Receiver
8
- extend ::ActiveSupport::Concern
9
- extend ::EacRubyUtils::ActsAsAbstract
10
-
11
- module ClassMethods
12
- def on(*args, &block)
13
- ::EacRubyUtils::Speaker.context.on(new(*args), &block)
14
- end
15
- end
16
-
17
- def error(_string)
18
- raise_abstract_method(__method__)
19
- end
20
-
21
- def fatal_error(string)
22
- error(string)
23
- ::Kernel.exit 1 # rubocop:disable Rails/Exit
24
- end
25
-
26
- # @see EacRubyUtils::Speaker::Sender.input
27
- def input(_question, _options = {})
28
- raise_abstract_method(__method__)
29
- end
30
-
31
- def info(_string)
32
- raise_abstract_method(__method__)
33
- end
34
-
35
- def infom(_string)
36
- raise_abstract_method(__method__)
37
- end
38
-
39
- def infov(*_args)
40
- raise_abstract_method(__method__)
41
- end
42
-
43
- def out(_string = '')
44
- raise_abstract_method(__method__)
45
- end
46
-
47
- def puts(_string = '')
48
- raise_abstract_method(__method__)
49
- end
50
-
51
- def success(_string)
52
- raise_abstract_method(__method__)
53
- end
54
-
55
- def title(_string)
56
- raise_abstract_method(__method__)
57
- end
58
-
59
- def warn(_string)
60
- raise_abstract_method(__method__)
61
- end
62
- end
63
- end
64
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- module Speaker
5
- module Sender
6
- delegate :error, :fatal_error, :info, :infom, :title, :success, :warn, to: :speaker_receiver
7
-
8
- def infov(*args)
9
- speaker_receiver.infov(*args)
10
- end
11
-
12
- delegate :out, to: :speaker_receiver
13
-
14
- delegate :puts, to: :speaker_receiver
15
-
16
- # Shortcut to [EacRubyUtils::Speaker.current_receiver].
17
- #
18
- # @return [EacRubyUtils::Speaker::Receiver]
19
- def speaker_receiver
20
- ::EacRubyUtils::Speaker.current_receiver
21
- end
22
-
23
- # Options:
24
- # +bool+ ([Boolean], default: +false+): requires a answer "yes" or "no".
25
- # +list+ ([Hash] or [Array], default: +nil+): requires a answer from a list.
26
- # +noecho+ ([Boolean], default: +false+): does not output answer.
27
- def input(question, options = {})
28
- speaker_receiver.input(question, options)
29
- end
30
- end
31
- end
32
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/contextualizable'
4
-
5
- module EacRubyUtils
6
- module Speaker
7
- include ::EacRubyUtils::Contextualizable
8
-
9
- class << self
10
- # @return [EacRubyUtils::Speaker::Receiver]
11
- def current_receiver
12
- context.current
13
- end
14
- end
15
- end
16
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/method_class'
4
- require 'eac_ruby_utils/patches/module/common_concern'
5
-
6
- module EacRubyUtils
7
- module StaticMethodClass
8
- common_concern do
9
- ::EacRubyUtils::MethodClass::Setup.new(self, true)
10
- end
11
- end
12
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- class StringDelimited
5
- attr_reader :string, :begin_delimiter, :end_delimiter
6
-
7
- def initialize(string, begin_delimiter, end_delimiter)
8
- @string = string
9
- @begin_delimiter = begin_delimiter
10
- @end_delimiter = end_delimiter
11
- end
12
-
13
- def inner
14
- between_indexes(content_index, end_index).to_s
15
- end
16
-
17
- def outer
18
- between_indexes(begin_index, after_end_index).to_s
19
- end
20
-
21
- def without_inner
22
- without_join(
23
- between_indexes(sos_index, content_index), between_indexes(end_index, eos_index)
24
- )
25
- end
26
-
27
- def without_outer
28
- without_join(
29
- between_indexes(sos_index, begin_index),
30
- between_indexes(after_end_index, eos_index)
31
- )
32
- end
33
-
34
- private
35
-
36
- def after_end_index
37
- end_index.if_present { |v| v + end_delimiter.length }
38
- end
39
-
40
- def begin_index
41
- string.index(begin_delimiter)
42
- end
43
-
44
- def between_indexes(a_begin_index, a_end_index)
45
- a_begin_index && a_end_index ? string[a_begin_index, a_end_index - a_begin_index] : nil
46
- end
47
-
48
- def content_index
49
- begin_index.if_present { |v| v + begin_delimiter.length }
50
- end
51
-
52
- def without_join(*strings)
53
- return string if strings.any?(&:nil?)
54
-
55
- strings.join('')
56
- end
57
-
58
- def end_index
59
- content_index.if_present { |_v| string.index(end_delimiter, content_index) }
60
- end
61
-
62
- def sos_index
63
- 0
64
- end
65
-
66
- def eos_index
67
- string.length
68
- end
69
- end
70
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_support/hash_with_indifferent_access'
4
- require 'active_support/core_ext/module/delegation'
5
- require 'active_support/core_ext/object/blank'
6
-
7
- module EacRubyUtils
8
- class Struct
9
- def initialize(initial_data = {})
10
- self.data = initial_data.symbolize_keys
11
- end
12
-
13
- def [](key)
14
- key, bool = parse_key(key)
15
- bool ? self[key].present? : data[key]
16
- end
17
-
18
- def fetch(key)
19
- key, bool = parse_key(key)
20
- bool ? fetch(key).present? : data.fetch(key)
21
- end
22
-
23
- def merge(other)
24
- other = self.class.new(other) unless other.is_a?(self.class)
25
- self.class.new(to_h.merge(other.to_h))
26
- end
27
-
28
- def method_missing(method_name, *arguments, &block)
29
- property_method?(method_name) ? fetch(method_name) : super
30
- end
31
-
32
- def respond_to_missing?(method_name, include_private = false)
33
- property_method?(method_name) || super
34
- end
35
-
36
- def slice_fetch(*keys)
37
- self.class.new(keys.map { |key| [key, fetch(key)] }.to_h)
38
- end
39
-
40
- def to_h
41
- data.dup
42
- end
43
-
44
- delegate :to_s, to: :data
45
-
46
- private
47
-
48
- attr_accessor :data
49
-
50
- def parse_key(key)
51
- m = /\A(.+)\?\z/.match(key.to_s)
52
- [(m ? m[1] : key.to_s).to_sym, m ? true : false]
53
- end
54
-
55
- def property_method?(key)
56
- property_methods.include?(key.to_sym)
57
- end
58
-
59
- def property_methods
60
- data.keys.flat_map { |k| [k.to_sym, "#{k}?".to_sym] }
61
- end
62
- end
63
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- class UnimplementedMethodError < ::StandardError
5
- end
6
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- VERSION = '0.119.2'
5
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- # The `Wildcards` class provides pattern matching with wildcards using regular expressions.
5
- class Wildcards
6
- # Initializes a new instance of the `Wildcards` class with the specified pattern.
7
- #
8
- # @param pattern [String] The pattern to match against.
9
- def initialize(pattern)
10
- @pattern = pattern
11
- end
12
-
13
- # Matches the given string against the pattern.
14
- #
15
- # @param string [String] The string to match.
16
- # @return [Boolean] Returns `true` if the string matches the pattern, otherwise `false`.
17
- delegate :match?, to: :regex
18
-
19
- private
20
-
21
- # @return [Regexp]
22
- def regex
23
- ::Regexp.new("^#{::Regexp.escape(@pattern).gsub('\*', '.*').gsub('\?', '.?')}$")
24
- end
25
- end
26
- end
@@ -1,105 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'date'
4
- require 'yaml'
5
-
6
- module EacRubyUtils
7
- # A safe YAML loader/dumper with common types included.
8
- class Yaml
9
- class << self
10
- DEFAULT_PERMITTED_CLASSES = [::Array, ::Date, ::DateTime, ::FalseClass, ::Hash, ::NilClass,
11
- ::Numeric, ::String, ::Symbol, ::Time, ::TrueClass].freeze
12
-
13
- def dump(object)
14
- ::YAML.dump(sanitize(object))
15
- end
16
-
17
- def dump_file(path, object)
18
- ::File.write(path.to_s, dump(object))
19
- end
20
-
21
- def load(string)
22
- ::YAML.safe_load(string, permitted_classes)
23
- end
24
-
25
- def load_file(path)
26
- load(::File.read(path.to_s))
27
- end
28
-
29
- def permitted_classes
30
- DEFAULT_PERMITTED_CLASSES
31
- end
32
-
33
- def sanitize(object)
34
- Sanitizer.new(object).result
35
- end
36
-
37
- def yaml?(object)
38
- return false unless object.is_a?(::String)
39
- return false unless object.start_with?('---')
40
-
41
- load(object)
42
- true
43
- rescue ::Psych::Exception
44
- false
45
- end
46
-
47
- class Sanitizer
48
- attr_reader :source
49
-
50
- RESULT_TYPES = %w[permitted enumerableable hashable].freeze
51
-
52
- def initialize(source)
53
- @source = source
54
- end
55
-
56
- def result
57
- RESULT_TYPES.each do |type|
58
- return send("result_#{type}") if send("result_#{type}?")
59
- end
60
-
61
- source.to_s
62
- end
63
-
64
- private
65
-
66
- def result_enumerableable?
67
- source.respond_to?(:to_a) && !source.is_a?(::Hash)
68
- end
69
-
70
- def result_enumerableable
71
- source.to_a.map { |child| sanitize_value(child) }
72
- end
73
-
74
- def result_hashable?
75
- source.respond_to?(:to_h)
76
- end
77
-
78
- def result_hashable
79
- source.to_h.map { |k, v| [k.to_sym, sanitize_value(v)] }.to_h
80
- end
81
-
82
- def result_nil?
83
- source.nil?
84
- end
85
-
86
- def result_nil
87
- nil
88
- end
89
-
90
- def result_permitted?
91
- (::EacRubyUtils::Yaml.permitted_classes - [::Array, ::Hash])
92
- .any? { |klass| source.is_a?(klass) }
93
- end
94
-
95
- def result_permitted
96
- source
97
- end
98
-
99
- def sanitize_value(value)
100
- self.class.new(value).result
101
- end
102
- end
103
- end
104
- end
105
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- require 'eac_ruby_utils/require_sub'
5
- ::EacRubyUtils.require_sub __FILE__
6
- end
@@ -1,94 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/acts_as_abstract'
4
- require 'eac_ruby_utils/unimplemented_method_error'
5
-
6
- ::RSpec.describe(::EacRubyUtils::ActsAsAbstract) do
7
- let(:base_class) do
8
- the_module = described_class
9
- ::Class.new do
10
- include the_module
11
-
12
- abstract_methods :method1, :method2
13
-
14
- def method3
15
- 'base result'
16
- end
17
- end
18
- end
19
- let(:sub_class) do
20
- ::Class.new(base_class) do
21
- def method1
22
- 'a result'
23
- end
24
-
25
- def method4
26
- 'sub result'
27
- end
28
- end
29
- end
30
-
31
- class << self
32
- def specs_for_target(test_target, instances_hash)
33
- describe "\##{test_target}" do # rubocop:disable RSpec/EmptyExampleGroup
34
- specs_for_instances(test_target, instances_hash)
35
- end
36
- end
37
-
38
- def specs_for_instances(test_target, instances_hash)
39
- instances_hash.each do |instance_name, expected_values|
40
- context "when instance is \"#{instance_name}\"" do # rubocop:disable RSpec/EmptyExampleGroup
41
- let(:instance) { send("#{instance_name}_class").new }
42
-
43
- specs_for_methods_values(test_target, expected_values)
44
- end
45
- end
46
- end
47
-
48
- def specs_for_methods_values(test_target, expected_values)
49
- expected_values.each_with_index do |expected_value, method_index|
50
- method_name = "method#{method_index + 1}"
51
- context "when method is \"#{method_name}\"" do # rubocop:disable RSpec/EmptyExampleGroup
52
- send("specs_for_#{test_target}", method_name, expected_value)
53
- end
54
- end
55
- end
56
-
57
- def specs_for_abstract_method(method_name, expected_value)
58
- it { expect(instance.abstract_method?(method_name)).to eq(expected_value) }
59
- end
60
-
61
- def specs_for_method_missing(method_name, expected_value)
62
- if expected_value.is_a?(::Class) && expected_value < ::Exception
63
- it do
64
- expect { instance.send(method_name) }.to raise_error(expected_value)
65
- end
66
- else
67
- it do
68
- expect(instance.send(method_name)).to eq(expected_value)
69
- end
70
- end
71
- end
72
-
73
- def specs_for_respond_to_missing(method_name, expected_value)
74
- it { expect(instance.respond_to?(method_name)).to eq(expected_value) }
75
- end
76
- end
77
- {
78
- abstract_method: {
79
- base: [true, true, false, false],
80
- sub: [false, true, false, false]
81
- },
82
- method_missing: {
83
- base: [::EacRubyUtils::UnimplementedMethodError, ::EacRubyUtils::UnimplementedMethodError,
84
- 'base result', ::NoMethodError],
85
- sub: ['a result', ::EacRubyUtils::UnimplementedMethodError, 'base result', 'sub result']
86
- },
87
- respond_to_missing: {
88
- base: [true, true, true, false],
89
- sub: [true, true, true, true]
90
- }
91
- }.each do |test_target, instances_hash|
92
- specs_for_target(test_target, instances_hash)
93
- end
94
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/acts_as_immutable'
4
-
5
- ::RSpec.describe ::EacRubyUtils::ActsAsImmutable::ArrayAccessor do
6
- let(:stub_class) do
7
- ::Class.new do
8
- include ::EacRubyUtils::ActsAsImmutable
9
-
10
- immutable_accessor :array_attr, type: :array
11
- end
12
- end
13
-
14
- let(:initial_instance) { stub_class.new }
15
-
16
- it do
17
- expect(initial_instance.array_attrs).to eq([])
18
- end
19
-
20
- context 'when array_attr pushs for' do
21
- let(:change1_instance) { initial_instance.array_attr('A') }
22
-
23
- it { expect(change1_instance).to be_a(initial_instance.class) }
24
- it { expect(change1_instance.object_id).not_to eq(initial_instance.object_id) }
25
- it { expect(change1_instance.array_attrs).to eq(%w[A]) }
26
-
27
- context 'when array_attrs sets for' do
28
- let(:change2_instance) { initial_instance.array_attrs(%w[B]) }
29
-
30
- it { expect(change2_instance).to be_a(initial_instance.class) }
31
- it { expect(change2_instance.object_id).not_to eq(change1_instance.object_id) }
32
- it { expect(change2_instance.array_attrs).to eq(%w[B]) }
33
- end
34
-
35
- context 'when array_attrs sets for a non array' do
36
- let(:change2_instance) { initial_instance.array_attrs('B') }
37
-
38
- it { expect(change2_instance).to be_a(initial_instance.class) }
39
- it { expect(change2_instance.object_id).not_to eq(change1_instance.object_id) }
40
- it { expect(change2_instance.array_attrs).to eq(%w[B]) }
41
- end
42
- end
43
- end
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/acts_as_immutable'
4
-
5
- ::RSpec.describe ::EacRubyUtils::ActsAsImmutable::CommonAccessor do
6
- let(:stub_class) do
7
- ::Class.new do
8
- include ::EacRubyUtils::ActsAsImmutable
9
-
10
- immutable_accessor :attr1, :attr2, :attr3
11
-
12
- def attr1_get_filter(value)
13
- value || 'DEFAULT'
14
- end
15
-
16
- def attr2_set_filter(value)
17
- "#{value}_FILTERED"
18
- end
19
- end
20
- end
21
-
22
- let(:initial_instance) { stub_class.new }
23
-
24
- it { expect(initial_instance.attr1).to eq('DEFAULT') }
25
- it { expect(initial_instance.attr2).to eq(nil) }
26
- it { expect(initial_instance.attr3).to eq(nil) }
27
-
28
- context 'when attr1 is set' do
29
- let(:change1_instance) { initial_instance.attr1('A') }
30
-
31
- it { expect(change1_instance).to be_a(initial_instance.class) }
32
- it { expect(change1_instance.object_id).not_to eq(initial_instance.object_id) }
33
- it { expect(change1_instance.attr1).to eq('A') }
34
- it { expect(change1_instance.attr2).to eq(nil) }
35
- it { expect(change1_instance.attr3).to eq(nil) }
36
-
37
- context 'when attr2 is set' do
38
- let(:change2_instance) { change1_instance.attr2('B') }
39
-
40
- it { expect(change2_instance).to be_a(change1_instance.class) }
41
- it { expect(change2_instance.object_id).not_to eq(change1_instance.object_id) }
42
- it { expect(change2_instance.attr1).to eq('A') }
43
- it { expect(change2_instance.attr2).to eq('B_FILTERED') }
44
- it { expect(change2_instance.attr3).to eq(nil) }
45
- end
46
-
47
- context 'when attr3 is set' do
48
- let(:change2_instance) { change1_instance.attr3('C') }
49
-
50
- it { expect(change2_instance).to be_a(change1_instance.class) }
51
- it { expect(change2_instance.object_id).not_to eq(change1_instance.object_id) }
52
- it { expect(change2_instance.attr1).to eq('A') }
53
- it { expect(change2_instance.attr2).to eq(nil) }
54
- it { expect(change2_instance.attr3).to eq('C') }
55
- end
56
- end
57
- end