eac_tools 0.126.0 → 0.126.1

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 (357) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +35 -24
  3. data/eac_tools.gemspec +2 -2
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +1 -1
  6. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build.rb +2 -2
  7. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/deploy.rb +2 -8
  8. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/version.rb +1 -1
  9. data/sub/avm-eac_webapp_base0/.gitignore +2 -0
  10. data/sub/avm-eac_webapp_base0/.gitrepo +7 -0
  11. data/sub/avm-eac_webapp_base0/.rspec +1 -0
  12. data/sub/avm-eac_webapp_base0/.rubocop.yml +3 -0
  13. data/sub/avm-eac_webapp_base0/Gemfile +8 -0
  14. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +25 -0
  15. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/executables.rb +23 -0
  16. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css/file_apply.rb +44 -0
  17. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css.rb +17 -0
  18. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/html.rb +42 -0
  19. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/javascript.rb +19 -0
  20. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/json.rb +25 -0
  21. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +17 -0
  22. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/xml.rb +23 -0
  23. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_base.rb +28 -0
  24. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_host.rb +72 -0
  25. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_path.rb +37 -0
  26. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/apache.rb +42 -0
  27. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/deploy.rb +24 -0
  28. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/deploy_info.rb +27 -0
  29. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/install.rb +24 -0
  30. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base.rb +37 -0
  31. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/appended_directories.rb +25 -0
  32. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/build.rb +61 -0
  33. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/info.rb +44 -0
  34. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/scm.rb +88 -0
  35. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/setup_files_unit.rb +53 -0
  36. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/write_on_target.rb +18 -0
  37. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy.rb +72 -0
  38. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy_info.rb +35 -0
  39. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/processes/web_server.rb +34 -0
  40. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_host.rb +34 -0
  41. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_path.rb +38 -0
  42. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy.rb +47 -0
  43. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy_info.rb +24 -0
  44. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources/base.rb +13 -0
  45. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +7 -0
  46. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0.rb +9 -0
  47. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec.rb +7 -0
  48. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.source.css +11 -0
  49. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.target.css +11 -0
  50. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec.rb +7 -0
  51. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.source +8 -0
  52. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.target +8 -0
  53. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.source +5 -0
  54. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.target +5 -0
  55. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec.rb +7 -0
  56. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.source +29 -0
  57. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.target +21 -0
  58. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec.rb +7 -0
  59. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.source +8 -0
  60. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.target +7 -0
  61. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec.rb +7 -0
  62. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.source +11 -0
  63. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.target +9 -0
  64. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/instances/base_spec.rb +11 -0
  65. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/sources/base_spec.rb +7 -0
  66. data/sub/avm-eac_webapp_base0/spec/spec_helper.rb +5 -0
  67. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_host/no_ssl.conf +11 -0
  68. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_path/default.conf +7 -0
  69. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/deploy/.keep +1 -0
  70. data/sub/eac_ruby_utils/.avm.yaml +3 -0
  71. data/sub/eac_ruby_utils/.gitignore +4 -0
  72. data/sub/eac_ruby_utils/.gitrepo +7 -0
  73. data/sub/eac_ruby_utils/.rspec +1 -0
  74. data/sub/eac_ruby_utils/.rubocop.yml +3 -0
  75. data/sub/eac_ruby_utils/.yardopts +1 -0
  76. data/sub/eac_ruby_utils/Gemfile +8 -0
  77. data/sub/eac_ruby_utils/MIT-LICENCE +16 -0
  78. data/sub/eac_ruby_utils/README.rdoc +3 -0
  79. data/sub/eac_ruby_utils/eac_ruby_utils.gemspec +29 -0
  80. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_abstract.rb +100 -0
  81. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/array_accessor.rb +25 -0
  82. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/base_accessor.rb +57 -0
  83. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/boolean_accessor.rb +16 -0
  84. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb +20 -0
  85. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/common_accessor.rb +30 -0
  86. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/enumerable_accessor.rb +52 -0
  87. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/hash_accessor.rb +57 -0
  88. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/instance_methods.rb +21 -0
  89. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/set_accessor.rb +25 -0
  90. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable.rb +16 -0
  91. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_instance_method.rb +46 -0
  92. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_static_method.rb +12 -0
  93. data/sub/eac_ruby_utils/lib/eac_ruby_utils/arguments_consumer.rb +80 -0
  94. data/sub/eac_ruby_utils/lib/eac_ruby_utils/bit.rb +47 -0
  95. data/sub/eac_ruby_utils/lib/eac_ruby_utils/bit_array.rb +81 -0
  96. data/sub/eac_ruby_utils/lib/eac_ruby_utils/blank_not_blank.rb +19 -0
  97. data/sub/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb +31 -0
  98. data/sub/eac_ruby_utils/lib/eac_ruby_utils/by_reference.rb +23 -0
  99. data/sub/eac_ruby_utils/lib/eac_ruby_utils/byte.rb +106 -0
  100. data/sub/eac_ruby_utils/lib/eac_ruby_utils/byte_array.rb +36 -0
  101. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern/class_setup.rb +53 -0
  102. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern/module_setup.rb +42 -0
  103. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern.rb +20 -0
  104. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb +36 -0
  105. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb +39 -0
  106. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/instance_initialize.rb +64 -0
  107. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/super_args.rb +55 -0
  108. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor.rb +95 -0
  109. data/sub/eac_ruby_utils/lib/eac_ruby_utils/compact.rb +32 -0
  110. data/sub/eac_ruby_utils/lib/eac_ruby_utils/compare_by.rb +28 -0
  111. data/sub/eac_ruby_utils/lib/eac_ruby_utils/context.rb +33 -0
  112. data/sub/eac_ruby_utils/lib/eac_ruby_utils/contextualizable.rb +19 -0
  113. data/sub/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb +6 -0
  114. data/sub/eac_ruby_utils/lib/eac_ruby_utils/custom_format.rb +51 -0
  115. data/sub/eac_ruby_utils/lib/eac_ruby_utils/enum.rb +102 -0
  116. data/sub/eac_ruby_utils/lib/eac_ruby_utils/enumerables_methods.rb +42 -0
  117. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/append_command_options.rb +38 -0
  118. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/concat.rb +41 -0
  119. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/debugging.rb +19 -0
  120. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/execution.rb +62 -0
  121. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/extra_options.rb +28 -0
  122. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command.rb +45 -0
  123. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_env.rb +28 -0
  124. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/envvars.rb +27 -0
  125. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/extra_options.rb +23 -0
  126. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb +67 -0
  127. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/composite_command.rb +45 -0
  128. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/executable.rb +93 -0
  129. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_error.rb +8 -0
  130. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_result.rb +45 -0
  131. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/file.rb +22 -0
  132. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/local_env.rb +17 -0
  133. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/process.rb +27 -0
  134. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/spawn.rb +32 -0
  135. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/dasho_options.rb +51 -0
  136. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/identity_file.rb +26 -0
  137. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/quiet.rb +25 -0
  138. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/terminal.rb +36 -0
  139. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env.rb +74 -0
  140. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs.rb +23 -0
  141. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/clearable_directory.rb +57 -0
  142. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/extname.rb +35 -0
  143. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/directory.rb +16 -0
  144. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/file.rb +41 -0
  145. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp.rb +52 -0
  146. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs.rb +11 -0
  147. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem/dependencies.rb +33 -0
  148. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem/paths_to_require.rb +57 -0
  149. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem.rb +50 -0
  150. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry.rb +34 -0
  151. data/sub/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb +29 -0
  152. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/class_methods.rb +14 -0
  153. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/instance_methods.rb +30 -0
  154. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/integer_list.rb +23 -0
  155. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/item.rb +48 -0
  156. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +129 -0
  157. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/lists.rb +51 -0
  158. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/string_list.rb +19 -0
  159. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/symbol_list.rb +19 -0
  160. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable.rb +17 -0
  161. data/sub/eac_ruby_utils/lib/eac_ruby_utils/local_time_zone.rb +48 -0
  162. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_all_gems.rb +4 -0
  163. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb +47 -0
  164. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/module_i18n_translate.rb +74 -0
  165. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales.rb +9 -0
  166. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/base.rb +34 -0
  167. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/hash.rb +20 -0
  168. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/set.rb +19 -0
  169. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable.rb +9 -0
  170. data/sub/eac_ruby_utils/lib/eac_ruby_utils/objects_table.rb +41 -0
  171. data/sub/eac_ruby_utils/lib/eac_ruby_utils/options_consumer.rb +62 -0
  172. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patch_module.rb +21 -0
  173. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable/uri/query_value.rb +37 -0
  174. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable/uri.rb +4 -0
  175. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable.rb +4 -0
  176. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/abstract.rb +9 -0
  177. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/acts_as_instance_method.rb +11 -0
  178. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/acts_as_static_method.rb +11 -0
  179. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/common_constructor.rb +9 -0
  180. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/method_class.rb +10 -0
  181. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/self_included_modules.rb +7 -0
  182. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/settings_provider.rb +10 -0
  183. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/static_method_class.rb +12 -0
  184. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class.rb +4 -0
  185. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerable/boolean_combinations.rb +45 -0
  186. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerable.rb +4 -0
  187. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator/current.rb +9 -0
  188. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator/stopped.rb +14 -0
  189. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator.rb +4 -0
  190. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/if_key.rb +12 -0
  191. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/options_consumer.rb +10 -0
  192. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/sym_keys_hash.rb +10 -0
  193. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/to_struct.rb +10 -0
  194. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash.rb +5 -0
  195. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/integer/rjust_zero.rb +13 -0
  196. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/integer.rb +4 -0
  197. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/ibr.rb +10 -0
  198. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/nyi.rb +10 -0
  199. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel.rb +4 -0
  200. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/abstract_methods.rb +10 -0
  201. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_abstract.rb +15 -0
  202. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_immutable.rb +10 -0
  203. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb +9 -0
  204. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/compare_by.rb +9 -0
  205. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/context.rb +11 -0
  206. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/enable_memoized.rb +10 -0
  207. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/i18n_translate.rb +9 -0
  208. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/immutable.rb +11 -0
  209. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/listable.rb +10 -0
  210. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/module_parent.rb +5 -0
  211. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/patch_self.rb +9 -0
  212. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/require_sub.rb +9 -0
  213. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/simple_cache.rb +10 -0
  214. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/speaker.rb +9 -0
  215. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module.rb +4 -0
  216. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/asserts.rb +25 -0
  217. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/call_if_proc.rb +11 -0
  218. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/compact.rb +20 -0
  219. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb +55 -0
  220. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/i18n_translate.rb +11 -0
  221. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_nil.rb +17 -0
  222. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_present.rb +19 -0
  223. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_respond.rb +22 -0
  224. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/recursive_build.rb +12 -0
  225. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_bool.rb +12 -0
  226. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_pathname.rb +15 -0
  227. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_sym_by_eac.rb +11 -0
  228. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_uri.rb +15 -0
  229. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object.rb +5 -0
  230. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/assert_parent.rb +12 -0
  231. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/basename_noext.rb +9 -0
  232. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/basename_sub.rb +13 -0
  233. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/child_of.rb +16 -0
  234. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/if_exist.rb +10 -0
  235. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/mkpath_s.rb +12 -0
  236. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/parent_n.rb +11 -0
  237. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/readlink_r.rb +11 -0
  238. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/reqdir_glob.rb +13 -0
  239. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname.rb +4 -0
  240. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/if_match.rb +16 -0
  241. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/to_parser.rb +10 -0
  242. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp.rb +4 -0
  243. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string/delimited.rb +16 -0
  244. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb +11 -0
  245. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string.rb +4 -0
  246. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/time/required_zone.rb +11 -0
  247. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/time.rb +4 -0
  248. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches.rb +4 -0
  249. data/sub/eac_ruby_utils/lib/eac_ruby_utils/recursive_builder.rb +51 -0
  250. data/sub/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +39 -0
  251. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/base.rb +93 -0
  252. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/sub_file.rb +64 -0
  253. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb +11 -0
  254. data/sub/eac_ruby_utils/lib/eac_ruby_utils/root_module_setup/ignore.rb +57 -0
  255. data/sub/eac_ruby_utils/lib/eac_ruby_utils/root_module_setup.rb +108 -0
  256. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/default_setup.rb +23 -0
  257. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup/conditionals.rb +17 -0
  258. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup/setup_manager.rb +17 -0
  259. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup.rb +27 -0
  260. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup_manager.rb +49 -0
  261. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/stub_speaker.rb +39 -0
  262. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec.rb +9 -0
  263. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/command.rb +32 -0
  264. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_clean_environment.rb +71 -0
  265. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_replace_objects/replace_instance_method.rb +36 -0
  266. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_replace_objects.rb +52 -0
  267. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby.rb +9 -0
  268. data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb +79 -0
  269. data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb +50 -0
  270. data/sub/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb +77 -0
  271. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb +64 -0
  272. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/sender.rb +37 -0
  273. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker.rb +16 -0
  274. data/sub/eac_ruby_utils/lib/eac_ruby_utils/string_delimited.rb +70 -0
  275. data/sub/eac_ruby_utils/lib/eac_ruby_utils/struct.rb +63 -0
  276. data/sub/eac_ruby_utils/lib/eac_ruby_utils/unimplemented_method_error.rb +6 -0
  277. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +5 -0
  278. data/sub/eac_ruby_utils/lib/eac_ruby_utils/wildcards.rb +26 -0
  279. data/sub/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb +107 -0
  280. data/sub/eac_ruby_utils/lib/eac_ruby_utils.rb +14 -0
  281. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_abstract_spec.rb +91 -0
  282. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/array_accessor_spec.rb +41 -0
  283. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/common_accessor_spec.rb +55 -0
  284. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/hash_accessor_spec.rb +40 -0
  285. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/set_accessor_spec.rb +41 -0
  286. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_instance_method_spec.rb +11 -0
  287. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_static_method_spec.rb +12 -0
  288. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/arguments_consumer_spec.rb +15 -0
  289. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/bit_array_spec.rb +20 -0
  290. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb +14 -0
  291. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/byte_spec.rb +52 -0
  292. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/common_concern_spec.rb +63 -0
  293. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/common_constructor_spec.rb +149 -0
  294. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compact_spec.rb +19 -0
  295. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compare_by_spec.rb +37 -0
  296. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/custom_format_spec.rb +58 -0
  297. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb +42 -0
  298. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enumerables_methods_spec.rb +48 -0
  299. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/base_example.rb +95 -0
  300. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/local_env_spec.rb +9 -0
  301. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/ssh_env_spec.rb +16 -0
  302. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/executable_spec.rb +34 -0
  303. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/ssh_env_spec.rb +23 -0
  304. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/extname_spec.rb +16 -0
  305. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp/directory_spec.rb +27 -0
  306. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp_spec.rb +50 -0
  307. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/gems_registry_spec.rb +14 -0
  308. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/inflector_spec.rb +14 -0
  309. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/listable_spec.rb +223 -0
  310. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/local_time_zone_spec.rb +15 -0
  311. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/hash_spec.rb +55 -0
  312. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/set_spec.rb +55 -0
  313. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/options_consumer_spec.rb +78 -0
  314. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/addressable/uri/query_value_spec.rb +23 -0
  315. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/abstract_spec.rb +23 -0
  316. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/acts_as_abstract_spec.rb +11 -0
  317. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/acts_as_instance_method_spec.rb +11 -0
  318. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/acts_as_static_method_spec.rb +12 -0
  319. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/self_included_modules_spec.rb +28 -0
  320. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerable/boolean_combinations_spec.rb +37 -0
  321. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerator/current_spec.rb +24 -0
  322. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerator/stopped_spec.rb +30 -0
  323. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/if_key_spec.rb +21 -0
  324. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/options_consumer_spec.rb +15 -0
  325. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/sym_keys_hash_spec.rb +11 -0
  326. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/integer/rjust_zero_spec.rb +18 -0
  327. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/compare_by_spec.rb +35 -0
  328. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/listable_spec.rb +13 -0
  329. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/simple_cache_spec.rb +13 -0
  330. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/speaker_spec.rb +13 -0
  331. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/call_if_proc_spec.rb +9 -0
  332. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/compact_spec.rb +18 -0
  333. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/if_present_spec.rb +11 -0
  334. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/recursive_build_spec.rb +60 -0
  335. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec_files/path/my_stub_with_template +1 -0
  336. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/assert_parent_spec.rb +19 -0
  337. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_noext_spec.rb +24 -0
  338. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_sub_spec.rb +15 -0
  339. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/child_of_spec.rb +24 -0
  340. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/parent_n_spec.rb +31 -0
  341. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/string/delimited_spec.rb +32 -0
  342. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/recursive_builder_spec.rb +63 -0
  343. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec/stubbed_module_a.rb +6 -0
  344. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec/stubbed_not_module.rb +6 -0
  345. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec.rb +17 -0
  346. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/rspec/setup/setup_manager_spec.rb +14 -0
  347. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/ruby/on_clean_environment_spec.rb +29 -0
  348. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/ruby/on_replace_objects_spec.rb +63 -0
  349. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb +62 -0
  350. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/simple_cache_spec.rb +127 -0
  351. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb +55 -0
  352. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/wildcards_spec.rb +25 -0
  353. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb +73 -0
  354. data/sub/eac_ruby_utils/spec/locales/pt-BR.yml +58 -0
  355. data/sub/eac_ruby_utils/spec/spec_helper/acts_as_method_example.rb +41 -0
  356. data/sub/eac_ruby_utils/spec/spec_helper.rb +13 -0
  357. metadata +353 -11
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Pathname, '#assert_parent' do
4
+ let(:root) { temp_dir }
5
+ let(:parent_dir) { root.join('parent_dir') }
6
+ let(:instance) { parent_dir.join('the_file') }
7
+ let(:result) { instance.assert_parent }
8
+
9
+ it { expect(parent_dir).not_to exist }
10
+ it { expect(instance).not_to exist }
11
+
12
+ context 'when parent is asserted' do
13
+ before { result }
14
+
15
+ it { expect(parent_dir).to exist }
16
+ it { expect(instance).not_to exist }
17
+ it { expect(result).to eq(instance) }
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Pathname, '#basename_noext' do
4
+ describe '#basename_noext' do
5
+ {
6
+ 'After.Life.S01E01.WEBRip.x264-ION10.mp4' =>
7
+ %w[After.Life.S01E01.WEBRip.x264-ION10 After.Life.S01E01.WEBRip.x264-ION10.mp4
8
+ After.Life.S01E01.WEBRip.x264-ION10 After.Life.S01E01.WEBRip.x264-ION10],
9
+ 's01e01.en.srt' => %w[s01e01 s01e01.en.srt s01e01.en s01e01 s01e01],
10
+ 's01e01.srt' => %w[s01e01 s01e01.srt s01e01 s01e01 s01e01],
11
+ '/path/to/file.tar.gz' => %w[file file.tar.gz file.tar file file]
12
+ }.each do |source, expected_values|
13
+ expected_values.each_with_index do |expected_value, index|
14
+ limit = index - 1 # rubocop:disable RSpec/LeakyLocalVariable
15
+ context "when source is \"#{source}\" and limit is \"#{limit}\"" do
16
+ let(:instance) { described_class.new(source) }
17
+ let(:expected_path) { described_class.new(expected_value) }
18
+
19
+ it { expect(instance.basename_noext(limit)).to eq(expected_path) }
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Pathname, '#basename_sub' do
4
+ it do
5
+ expect(described_class.new('/absolute/path/to/file').basename_sub { |_b| 'other_file' }).to eq(
6
+ described_class.new('/absolute/path/to/other_file')
7
+ )
8
+ end
9
+
10
+ it do
11
+ expect(described_class.new('file').basename_sub { |b| "#{b}_appended" }).to eq(
12
+ described_class.new('file_appended')
13
+ )
14
+ end
15
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Pathname, '#child_of' do
4
+ describe 'child_of?' do
5
+ [
6
+ ['/foo/bar/baz', '/foo/bar', true],
7
+ ['/foo/../foo/bar/../bar/baz', '/foo/bar', true],
8
+ ['/foo/bar/baz', '/foo/../foo/bar/../bar', true],
9
+ ['/foo/bar/baz', '/boink', false],
10
+ ['/foo/bar/../not_bar/baz', '/foo/bar', false],
11
+ ['/foo/bar/../bar_not/baz', '/foo/bar', false],
12
+ ['/foo', '/foo/bar', false],
13
+ ['/foo', '/bar', false],
14
+ ['/foo', '/foo', false]
15
+ ].each do |test_values|
16
+ child_path, parent_path, expected_value = test_values # rubocop:disable RSpec/LeakyLocalVariable
17
+ context "when child=\"#{child_path}\" and parent=\"#{parent_path}\"" do
18
+ it do
19
+ expect(Pathname(child_path).child_of?(Pathname(parent_path))).to be(expected_value)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Pathname, '#parent_n' do
4
+ [
5
+ ['/absolute/path/to/file', 0, '/absolute/path/to/file'],
6
+ ['/absolute/path/to/file', 1, '/absolute/path/to'],
7
+ ['/absolute/path/to/file', 2, '/absolute/path'],
8
+ ['/absolute/path/to/file', 3, '/absolute'],
9
+ ['/absolute/path/to/file', 4, '/'],
10
+ ['/absolute/path/to/file', 5, '/'],
11
+ ['relative/path/to/file', 0, 'relative/path/to/file'],
12
+ ['relative/path/to/file', 1, 'relative/path/to'],
13
+ ['relative/path/to/file', 2, 'relative/path'],
14
+ ['relative/path/to/file', 3, 'relative'],
15
+ ['relative/path/to/file', 4, '.'],
16
+ ['relative/path/to/file', 5, '..'],
17
+ ['relative/path/to/file', 6, '../..']
18
+ ].each do |test_data|
19
+ input_path = test_data[0] # rubocop:disable RSpec/LeakyLocalVariable
20
+ context "when path is \"#{input_path}\"" do
21
+ let(:n) { test_data[1] }
22
+ let(:expected_path) { test_data[2] }
23
+
24
+ it do
25
+ expect(described_class.new(input_path).parent_n(n)).to(
26
+ eq(described_class.new(expected_path))
27
+ )
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe String, '#delimeted' do # rubocop:disable RSpec/SpecFilePathFormat
4
+ let(:instance) { 'A text with <b>content between</b> tags.' }
5
+
6
+ {
7
+ ['<b>', '</b>'] => {
8
+ 'inner' => 'content between',
9
+ 'without_inner' => 'A text with <b></b> tags.',
10
+ 'outer' => '<b>content between</b>',
11
+ 'without_outer' => 'A text with tags.'
12
+ },
13
+ ['<b>', '</br>'] => {
14
+ 'inner' => '',
15
+ 'without_inner' => 'A text with <b>content between</b> tags.',
16
+ 'outer' => '',
17
+ 'without_outer' => 'A text with <b>content between</b> tags.'
18
+ }
19
+ }.each do |delimiters, expected_values|
20
+ context "when delimiters are #{delimiters}" do
21
+ let(:bdel) { delimiters[0] }
22
+ let(:edel) { delimiters[1] }
23
+
24
+ expected_values.each do |method_suffix, expected_value|
25
+ method_name = "delimited_#{method_suffix}" # rubocop:disable RSpec/LeakyLocalVariable
26
+ it "#{method_name} should return \"#{expected_value}\"" do
27
+ expect(instance.send(method_name, bdel, edel)).to eq(expected_value)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe EacRubyUtils::RecursiveBuilder do
4
+ let(:item_class) do
5
+ Class.new do
6
+ class << self
7
+ def create(label, dependencies_keys)
8
+ item = new(label, dependencies_keys)
9
+ registry[item.label] = item
10
+ item
11
+ end
12
+
13
+ def registry
14
+ @registry ||= {}
15
+ end
16
+ end
17
+
18
+ attr_reader :label, :dependencies_keys
19
+
20
+ def initialize(label, dependencies_keys)
21
+ @label = label
22
+ @dependencies_keys = dependencies_keys.freeze
23
+ end
24
+
25
+ def dependencies
26
+ dependencies_keys.map { |key| self.class.registry.fetch(key) }
27
+ end
28
+
29
+ def to_s
30
+ label
31
+ end
32
+ end
33
+ end
34
+
35
+ items = [
36
+ [:a, %w[c], %w[a c]],
37
+ [:b, %w[a], %w[b a c]],
38
+ [:c, [], %w[c]],
39
+ [:d, %w[a b c e], %w[d a b c e]],
40
+ [:e, %w[c b], %w[e c b a]]
41
+ ]
42
+
43
+ items.each do |item|
44
+ let(item[0]) { item_class.create(item[0].to_s, item[1]) }
45
+ before { send(item[0]) }
46
+ end
47
+
48
+ describe '#result' do
49
+ items.each do |item|
50
+ context "when root is \"#{item[0]}\"" do
51
+ let(:root) { send(item[0]) }
52
+ let(:dependencies) { item[2].map { |d| send(d) } }
53
+ let(:builder) do
54
+ described_class.new(root, &:dependencies)
55
+ end
56
+
57
+ it "is #{item[2]}" do
58
+ expect(builder.result).to eq(dependencies)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RequireSubStubClass
4
+ module StubbedModuleA
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RequireSubStubClass
4
+ class StubbedNotModule # rubocop:disable Lint/EmptyClass
5
+ end
6
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RequireSubStubClass # rubocop:disable Lint/EmptyClass
4
+ end
5
+
6
+ RSpec.describe EacRubyUtils::RequireSub::Base do
7
+ let(:instance) { described_class.new(__FILE__, base: RequireSubStubClass, include_modules: true) }
8
+
9
+ before do
10
+ instance.apply
11
+ end
12
+
13
+ it do
14
+ expect(RequireSubStubClass.included_modules)
15
+ .to include(RequireSubStubClass::StubbedModuleA)
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe(EacRubyUtils::Rspec::Setup::SetupManager) do
4
+ describe '#setup_manager' do
5
+ it do
6
+ expect(setup_manager).to be_a(EacRubyUtils::Rspec::SetupManager)
7
+ end
8
+ end
9
+
10
+ describe '#app_root_path' do
11
+ it { expect(app_root_path).to be_a(Pathname) }
12
+ it { expect(app_root_path).to be_directory }
13
+ end
14
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe EacRubyUtils::Ruby, '#on_clean_environment' do
4
+ let(:envvar_name) { 'BUNDLE_NOT_EXISTENT_ENV_VAR' }
5
+ let(:envvar_value) { 'any value' }
6
+ let(:noruby_envvar_name) { 'ANY_ENVIRONMENT_VARIABLE' }
7
+ let(:noruby_envvar_value) { 'another any value' }
8
+
9
+ before do
10
+ ENV[envvar_name] = envvar_value
11
+ ENV[noruby_envvar_name] = noruby_envvar_value
12
+ end
13
+
14
+ it do # rubocop:disable RSpec/MultipleExpectations
15
+ expect(ENV.fetch(envvar_name, nil)).to eq(envvar_value)
16
+ described_class.on_clean_environment do
17
+ expect(ENV.fetch(envvar_name, nil)).to be_nil
18
+ end
19
+ expect(ENV.fetch(envvar_name, nil)).to eq(envvar_value)
20
+ end
21
+
22
+ it do # rubocop:disable RSpec/MultipleExpectations
23
+ expect(ENV.fetch(noruby_envvar_name, nil)).to eq(noruby_envvar_value)
24
+ described_class.on_clean_environment do
25
+ expect(ENV.fetch(noruby_envvar_name, nil)).to eq(noruby_envvar_value)
26
+ end
27
+ expect(ENV.fetch(noruby_envvar_name, nil)).to eq(noruby_envvar_value)
28
+ end
29
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe EacRubyUtils::Ruby, '#on_replace_objects' do
4
+ let(:stub_class) do
5
+ Class.new do
6
+ def self.my_class_method
7
+ 'Original'
8
+ end
9
+
10
+ def my_instance_method
11
+ 'Original'
12
+ end
13
+ end
14
+ end
15
+
16
+ let(:stub_instance) { stub_class.new }
17
+
18
+ let(:replace_block) do
19
+ proc { 'Replaced' }
20
+ end
21
+
22
+ describe '#my_instance_method' do
23
+ let(:before) { stub_instance.my_instance_method }
24
+ let(:inside) do
25
+ described_class.on_replace_objects do |replacer|
26
+ replacer.replace_instance_method(stub_class, :my_instance_method, &replace_block)
27
+ stub_instance.my_instance_method
28
+ end
29
+ end
30
+ let(:after) { stub_instance.my_instance_method }
31
+
32
+ before do
33
+ before
34
+ inside
35
+ after
36
+ end
37
+
38
+ it { expect(before).to eq('Original') }
39
+ it { expect(inside).to eq('Replaced') }
40
+ it { expect(after).to eq('Original') }
41
+ end
42
+
43
+ describe '#replace_self_method' do
44
+ let(:before) { stub_class.my_class_method }
45
+ let(:inside) do
46
+ described_class.on_replace_objects do |replacer|
47
+ replacer.replace_self_method(stub_class, :my_class_method, &replace_block)
48
+ stub_class.my_class_method
49
+ end
50
+ end
51
+ let(:after) { stub_class.my_class_method }
52
+
53
+ before do
54
+ before
55
+ inside
56
+ after
57
+ end
58
+
59
+ it { expect(before).to eq('Original') }
60
+ it { expect(inside).to eq('Replaced') }
61
+ it { expect(after).to eq('Original') }
62
+ end
63
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe EacRubyUtils::SettingsProvider do
4
+ let(:stub_class) do
5
+ the_described_class = described_class
6
+ r = Class.new do
7
+ include the_described_class
8
+
9
+ def key_a
10
+ 'method_a'
11
+ end
12
+
13
+ def key_b
14
+ 'method_b'
15
+ end
16
+
17
+ def key_f
18
+ nil
19
+ end
20
+
21
+ def settings
22
+ { 'key_b' => 'setting_b', key_c: 'setting_c' }
23
+ end
24
+ end
25
+ r.const_set(:KEY_A, 'constant_a')
26
+ r.const_set(:KEY_D, 'constant_d')
27
+ r
28
+ end
29
+
30
+ let(:stub) { stub_class.new }
31
+
32
+ describe '#setting_value' do
33
+ {
34
+ ['key_a'] => 'method_a',
35
+ [:key_b] => 'setting_b',
36
+ ['key_b', { order: %w[constant method settings_object] }] => 'method_b',
37
+ ['key_c'] => 'setting_c',
38
+ ['key_d'] => 'constant_d',
39
+ ['key_f'] => nil
40
+ }.each do |args, expected_value|
41
+ context "when args are \"#{args}\"" do
42
+ it { expect(stub.setting_value(*args)).to eq(expected_value) }
43
+ end
44
+ end
45
+
46
+ it do
47
+ expect { stub.setting_value('key_e') }.to raise_error(StandardError)
48
+ end
49
+
50
+ it do
51
+ expect(stub.setting_value('key_e', required: false)).to be_nil
52
+ end
53
+
54
+ it do
55
+ expect(stub.setting_value('key_e', default: nil)).to be_nil
56
+ end
57
+
58
+ it do
59
+ expect(stub.setting_value('key_e', default: 'default_e')).to eq('default_e')
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CacheableObject
4
+ include ::EacRubyUtils::SimpleCache
5
+
6
+ def my_method_uncached
7
+ @counter ||= 0
8
+ @counter += 1
9
+ end
10
+
11
+ def method_with_question_uncached? # rubocop:disable Naming/PredicateMethod
12
+ 'question'
13
+ end
14
+
15
+ def method_with_exclamation_uncached!
16
+ 'exclamation'
17
+ end
18
+
19
+ def method_with_args_uncached(arg1)
20
+ @counter2 ||= 0
21
+ @counter2 += 1
22
+ "#{arg1}/#{@counter2}"
23
+ end
24
+
25
+ def method_with_reset_uncached
26
+ reset_cache
27
+ 'result'
28
+ end
29
+
30
+ private
31
+
32
+ def private_method_uncached
33
+ @counter3 ||= 0
34
+ @counter3 += 1
35
+ end
36
+ end
37
+
38
+ RSpec.describe EacRubyUtils::SimpleCache do
39
+ let(:instance) { CacheableObject.new }
40
+
41
+ describe 'cached value' do
42
+ it 'uncached method return value should update at each call' do
43
+ expect(instance.my_method_uncached).not_to eq(instance.my_method_uncached)
44
+ end
45
+
46
+ it 'cached method should return same values at each call' do
47
+ expect(instance.my_method).to eq(instance.my_method) # rubocop:disable RSpec/IdenticalEqualityAssertion
48
+ end
49
+
50
+ it 'is able to call private uncached as cached' do
51
+ expect(instance.private_method).to eq(instance.private_method) # rubocop:disable RSpec/IdenticalEqualityAssertion
52
+ end
53
+
54
+ it 'return value even if reset cache' do
55
+ expect(instance.method_with_reset).to eq('result')
56
+ end
57
+ end
58
+
59
+ describe 'cache value with args' do
60
+ it do
61
+ expect(instance.method_with_args_uncached('123'))
62
+ .not_to eq(instance.method_with_args_uncached('123'))
63
+ end
64
+
65
+ it do
66
+ expect(instance.method_with_args_uncached('456'))
67
+ .not_to eq(instance.method_with_args_uncached('456'))
68
+ end
69
+
70
+ it do
71
+ expect(instance.method_with_args('123')).to eq(instance.method_with_args('123')) # rubocop:disable RSpec/IdenticalEqualityAssertion
72
+ end
73
+
74
+ it do
75
+ expect(instance.method_with_args('456')).to eq(instance.method_with_args('456')) # rubocop:disable RSpec/IdenticalEqualityAssertion
76
+ end
77
+
78
+ it do
79
+ expect(instance.method_with_args('456')).not_to eq(instance.method_with_args('123'))
80
+ end
81
+ end
82
+
83
+ describe 'method with marks' do
84
+ it 'found uncached method with exclamation mark' do
85
+ expect(instance.method_with_exclamation!).to eq('exclamation')
86
+ end
87
+
88
+ it 'found uncached method with question mark' do
89
+ expect(instance.method_with_question?).to eq('question')
90
+ end
91
+ end
92
+
93
+ describe '#respond_to?' do
94
+ it 'responds to cached method without args' do
95
+ expect(instance.respond_to?(:my_method)).to be(true)
96
+ end
97
+
98
+ it 'responds to cached method with args' do
99
+ expect(instance.respond_to?(:method_with_args)).to be(true)
100
+ end
101
+
102
+ it 'responds to cached method of uncached private method' do
103
+ expect(instance.respond_to?(:private_method)).to be(true)
104
+ end
105
+
106
+ it 'not respond to not existent method' do
107
+ expect(instance.respond_to?(:not_exist)).to be(false)
108
+ end
109
+ end
110
+
111
+ describe '#reset_cache' do
112
+ let(:instance) { CacheableObject.new }
113
+ let(:cached_value) { instance.my_method }
114
+
115
+ it 'cached method return should return cached value' do
116
+ expect(instance.my_method).to eq(cached_value)
117
+ end
118
+
119
+ context 'when reset_cache method is called' do
120
+ it 'cached method return should return new cached value' do
121
+ cached_value
122
+ instance.reset_cache
123
+ expect(instance.my_method).not_to eq(cached_value)
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe EacRubyUtils::Struct do
4
+ let(:instance) { described_class.new('a' => 1, b: '') }
5
+ let(:other) { described_class.new('a' => 'm1', c: 'm2') }
6
+
7
+ describe '#[]' do
8
+ it { expect(instance[:a]).to eq(1) }
9
+ it { expect(instance['a']).to eq(1) }
10
+ it { expect(instance[:a?]).to be(true) }
11
+ it { expect(instance['a?']).to be(true) }
12
+ it { expect(instance[:b]).to eq('') }
13
+ it { expect(instance['b']).to eq('') }
14
+ it { expect(instance[:b?]).to be(false) }
15
+ it { expect(instance['b?']).to be(false) }
16
+ it { expect(instance[:c]).to be_nil }
17
+ it { expect(instance['c']).to be_nil }
18
+ it { expect(instance[:c?]).to be(false) }
19
+ it { expect(instance['c?']).to be(false) }
20
+ end
21
+
22
+ describe '#fetch' do
23
+ it { expect(instance.fetch(:a)).to eq(1) }
24
+ it { expect(instance.fetch('a')).to eq(1) }
25
+ it { expect(instance.fetch(:a?)).to be(true) }
26
+ it { expect(instance.fetch('a?')).to be(true) }
27
+ it { expect(instance.fetch(:b)).to eq('') }
28
+ it { expect(instance.fetch('b')).to eq('') }
29
+ it { expect(instance.fetch(:b?)).to be(false) }
30
+ it { expect(instance.fetch('b?')).to be(false) }
31
+ it { expect { instance.fetch(:c) }.to raise_error(KeyError) }
32
+ it { expect { instance.fetch('c') }.to raise_error(KeyError) }
33
+ it { expect { instance.fetch(:c?) }.to raise_error(KeyError) }
34
+ it { expect { instance.fetch('c?') }.to raise_error(KeyError) }
35
+ end
36
+
37
+ describe '#merge' do
38
+ let(:merged) { instance.merge(other) }
39
+
40
+ it { expect(merged.to_h).to eq(a: 'm1', b: '', c: 'm2') }
41
+ end
42
+
43
+ describe '#property_method' do
44
+ it { expect(instance.a).to eq(1) }
45
+ it { expect(instance.a?).to be(true) }
46
+ it { expect(instance.b).to eq('') }
47
+ it { expect(instance.b?).to be(false) }
48
+ it { expect { instance.c }.to raise_error(NoMethodError) }
49
+ it { expect { instance.c? }.to raise_error(NoMethodError) }
50
+ end
51
+
52
+ describe '#to_h' do
53
+ it { expect(instance.to_h).to eq(a: 1, b: '') }
54
+ end
55
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe EacRubyUtils::Wildcards do
4
+ describe '#match' do
5
+ {
6
+ 'h*llo' => { 'hello' => true, 'hallo' => true, 'hxllo' => true, 'hillo' => true },
7
+ 'w?rld' => { 'world' => true, 'warld' => true, 'wzzrld' => false },
8
+ 'h*l?o' => { 'hello' => true, 'hallo' => true, 'hxxllo' => true, 'hilbbo' => false },
9
+ '' => { '' => true, 'hello' => false },
10
+ 'hello' => { '' => false, 'hello' => true }
11
+ }.each do |pattern, examples|
12
+ context "when pattern is '#{pattern}'" do
13
+ let(:instance) { described_class.new(pattern) }
14
+
15
+ examples.each do |string, expected_result|
16
+ context "when string is \"#{string}\"" do
17
+ it do
18
+ expect(instance.match?(string)).to eq(expected_result)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end