eac_tools 0.117.0 → 0.117.2

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 (344) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +57 -40
  3. data/eac_tools.gemspec +5 -5
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/lib/eac_tools.rb +20 -23
  6. data/sub/avm-eac_ruby_base0/.gitignore +2 -0
  7. data/sub/avm-eac_ruby_base0/.gitrepo +7 -0
  8. data/sub/avm-eac_ruby_base0/avm-eac_ruby_base0.gemspec +21 -0
  9. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/rspec/setup.rb +13 -0
  10. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/rspec/source_generator.rb +31 -0
  11. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators/base/application.rb +33 -0
  12. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators/base/executable.rb +29 -0
  13. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators/base/runner.rb +33 -0
  14. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators/base.rb +49 -0
  15. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/sources/base/executable.rb +59 -0
  16. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/sources/base.rb +16 -0
  17. data/sub/{avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools.rb → avm-eac_ruby_base0/lib/avm/eac_ruby_base0/version.rb} +2 -1
  18. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0.rb +6 -0
  19. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec.rb +42 -0
  20. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/.rspec +1 -0
  21. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/.rubocop.yml +3 -0
  22. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/Gemfile +8 -0
  23. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/Gemfile.lock +108 -0
  24. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/_gitignore +2 -0
  25. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/dashed-mygem.gemspec +24 -0
  26. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/exe/dashed-mygem +6 -0
  27. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem/runner.rb +17 -0
  28. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem/self.rb +13 -0
  29. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem/version.rb +7 -0
  30. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem.rb +6 -0
  31. data/sub/{avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb → avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed.rb} +2 -1
  32. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/spec/spec_helper.rb +5 -0
  33. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/.rspec +1 -0
  34. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/.rubocop.yml +3 -0
  35. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/Gemfile +8 -0
  36. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/Gemfile.lock +108 -0
  37. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/_gitignore +2 -0
  38. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/exe/mygem_underscore +6 -0
  39. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/lib/mygem_underscore/runner.rb +15 -0
  40. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/lib/mygem_underscore/self.rb +11 -0
  41. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/lib/mygem_underscore/version.rb +5 -0
  42. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/lib/mygem_underscore.rb +6 -0
  43. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/mygem_underscore.gemspec +24 -0
  44. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/spec/spec_helper.rb +5 -0
  45. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/sources/base_spec.rb +13 -0
  46. data/sub/{avm → avm-eac_ruby_base0}/spec/spec_helper.rb +1 -3
  47. data/sub/avm-eac_ruby_base0/template/avm/eac_ruby_base0/source_generators/base/application.template +11 -0
  48. data/sub/avm-eac_ruby_base0/template/avm/eac_ruby_base0/source_generators/base/executable.template +6 -0
  49. data/sub/avm-eac_ruby_base0/template/avm/eac_ruby_base0/source_generators/base/runner.template +15 -0
  50. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +3 -3
  51. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec/source_generator.rb +2 -2
  52. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/dependencies.rb +1 -1
  53. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/root_module.rb +6 -6
  54. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
  55. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1.rb +7 -12
  56. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec.rb +1 -1
  57. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/dashed-mygem.gemspec +1 -1
  58. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem.rb +2 -7
  59. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/lib/mygem.rb +2 -5
  60. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/mygem.gemspec +1 -1
  61. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem.rb +2 -2
  62. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/root_lib.template +2 -6
  63. data/sub/eac_ruby_gem_support/.gitrepo +7 -0
  64. data/sub/eac_ruby_gem_support/.rspec +1 -0
  65. data/sub/eac_ruby_gem_support/.rubocop.yml +45 -0
  66. data/sub/eac_ruby_gem_support/Gemfile +8 -0
  67. data/sub/eac_ruby_gem_support/eac_ruby_gem_support.gemspec +27 -0
  68. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/helpers/filesystem.rb +73 -0
  69. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/helpers/utils.rb +22 -0
  70. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/setup/rubocop.rb +61 -0
  71. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/setup.rb +52 -0
  72. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures.rb +73 -0
  73. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths.rb +11 -0
  74. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/source_target_fixtures_controller.rb +29 -0
  75. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/spec_paths_controller.rb +27 -0
  76. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures/source_target_file.rb +17 -0
  77. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures.rb +72 -0
  78. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/version.rb +5 -0
  79. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support.rb +10 -0
  80. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/helpers/filesystem_spec.rb +30 -0
  81. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec.rb +11 -0
  82. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec_files/one.source.yaml +2 -0
  83. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec_files/one.target.yaml +2 -0
  84. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths_spec.rb +17 -0
  85. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec.rb +25 -0
  86. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub1.source.txt +1 -0
  87. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub1.target.html +1 -0
  88. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub2.source.html +1 -0
  89. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub3.target.yaml +1 -0
  90. data/sub/eac_ruby_gem_support/spec/spec_helper.rb +5 -0
  91. metadata +99 -273
  92. data/sub/avm/.gitrepo +0 -12
  93. data/sub/avm/avm.gemspec +0 -28
  94. data/sub/avm/lib/avm/application_scms/base.rb +0 -37
  95. data/sub/avm/lib/avm/application_stereotypes/base.rb +0 -29
  96. data/sub/avm/lib/avm/applications/base/auto_local_source_path.rb +0 -22
  97. data/sub/avm/lib/avm/applications/base/local_instance.rb +0 -28
  98. data/sub/avm/lib/avm/applications/base/local_source.rb +0 -31
  99. data/sub/avm/lib/avm/applications/base/naming.rb +0 -26
  100. data/sub/avm/lib/avm/applications/base/organization.rb +0 -27
  101. data/sub/avm/lib/avm/applications/base/publishing.rb +0 -39
  102. data/sub/avm/lib/avm/applications/base/scm.rb +0 -24
  103. data/sub/avm/lib/avm/applications/base/stereotype.rb +0 -29
  104. data/sub/avm/lib/avm/applications/base.rb +0 -34
  105. data/sub/avm/lib/avm/data/callbacks.rb +0 -36
  106. data/sub/avm/lib/avm/data/clearer.rb +0 -17
  107. data/sub/avm/lib/avm/data/dumper.rb +0 -137
  108. data/sub/avm/lib/avm/data/loader.rb +0 -23
  109. data/sub/avm/lib/avm/data/package/base_performer.rb +0 -36
  110. data/sub/avm/lib/avm/data/package/build_directory.rb +0 -25
  111. data/sub/avm/lib/avm/data/package/clear.rb +0 -19
  112. data/sub/avm/lib/avm/data/package/dump.rb +0 -42
  113. data/sub/avm/lib/avm/data/package/load.rb +0 -33
  114. data/sub/avm/lib/avm/data/package.rb +0 -64
  115. data/sub/avm/lib/avm/data/performer.rb +0 -45
  116. data/sub/avm/lib/avm/data/rotate.rb +0 -106
  117. data/sub/avm/lib/avm/data/unit.rb +0 -44
  118. data/sub/avm/lib/avm/data/unit_with_commands.rb +0 -48
  119. data/sub/avm/lib/avm/docker/container.rb +0 -47
  120. data/sub/avm/lib/avm/docker/image.rb +0 -70
  121. data/sub/avm/lib/avm/docker/runner.rb +0 -129
  122. data/sub/avm/lib/avm/entries/auto_values/entry.rb +0 -36
  123. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +0 -21
  124. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +0 -42
  125. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +0 -24
  126. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +0 -35
  127. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +0 -27
  128. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +0 -40
  129. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +0 -40
  130. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +0 -59
  131. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +0 -16
  132. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +0 -22
  133. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +0 -23
  134. data/sub/avm/lib/avm/entries/base.rb +0 -53
  135. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +0 -21
  136. data/sub/avm/lib/avm/entries/entry.rb +0 -69
  137. data/sub/avm/lib/avm/entries/jobs/base.rb +0 -58
  138. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +0 -48
  139. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +0 -13
  140. data/sub/avm/lib/avm/entries/jobs/with_variables_source.rb +0 -13
  141. data/sub/avm/lib/avm/entries/keys_constants_set.rb +0 -41
  142. data/sub/avm/lib/avm/entries/uri_builder.rb +0 -87
  143. data/sub/avm/lib/avm/executables.rb +0 -21
  144. data/sub/avm/lib/avm/file_formats/base.rb +0 -34
  145. data/sub/avm/lib/avm/file_formats/file_result.rb +0 -11
  146. data/sub/avm/lib/avm/file_formats/search_formatter.rb +0 -83
  147. data/sub/avm/lib/avm/file_formats/unknown.rb +0 -15
  148. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +0 -72
  149. data/sub/avm/lib/avm/files/appendable/file_content.rb +0 -28
  150. data/sub/avm/lib/avm/files/appendable/plain_directory.rb +0 -27
  151. data/sub/avm/lib/avm/files/appendable/resource_base.rb +0 -17
  152. data/sub/avm/lib/avm/files/appendable/tar_output_command.rb +0 -27
  153. data/sub/avm/lib/avm/files/appendable/templatized_directory.rb +0 -36
  154. data/sub/avm/lib/avm/files/appendable.rb +0 -51
  155. data/sub/avm/lib/avm/files/appender.rb +0 -9
  156. data/sub/avm/lib/avm/files/deploy.rb +0 -70
  157. data/sub/avm/lib/avm/files/text_replacer/gsub.rb +0 -22
  158. data/sub/avm/lib/avm/files/text_replacer.rb +0 -29
  159. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +0 -28
  160. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +0 -60
  161. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +0 -31
  162. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +0 -16
  163. data/sub/avm/lib/avm/instances/base/auto_values.rb +0 -12
  164. data/sub/avm/lib/avm/instances/base/dockerizable.rb +0 -41
  165. data/sub/avm/lib/avm/instances/base/entry_keys.rb +0 -25
  166. data/sub/avm/lib/avm/instances/base/install.rb +0 -28
  167. data/sub/avm/lib/avm/instances/base/processes.rb +0 -25
  168. data/sub/avm/lib/avm/instances/base/production.rb +0 -33
  169. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +0 -23
  170. data/sub/avm/lib/avm/instances/base/web.rb +0 -15
  171. data/sub/avm/lib/avm/instances/base.rb +0 -70
  172. data/sub/avm/lib/avm/instances/data/files_unit.rb +0 -57
  173. data/sub/avm/lib/avm/instances/data/loading_denied_error.rb +0 -10
  174. data/sub/avm/lib/avm/instances/data/package.rb +0 -25
  175. data/sub/avm/lib/avm/instances/data/unit.rb +0 -36
  176. data/sub/avm/lib/avm/instances/docker_image.rb +0 -13
  177. data/sub/avm/lib/avm/instances/entry_keys.rb +0 -39
  178. data/sub/avm/lib/avm/instances/ids.rb +0 -28
  179. data/sub/avm/lib/avm/instances/process.rb +0 -29
  180. data/sub/avm/lib/avm/instances/runner.rb +0 -34
  181. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +0 -44
  182. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_source_wrappers.rb +0 -31
  183. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_sources.rb +0 -48
  184. data/sub/avm/lib/avm/launcher/context/instance_discovery/source_wrapper.rb +0 -61
  185. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +0 -27
  186. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +0 -34
  187. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +0 -32
  188. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +0 -74
  189. data/sub/avm/lib/avm/launcher/context/settings.rb +0 -51
  190. data/sub/avm/lib/avm/launcher/context.rb +0 -83
  191. data/sub/avm/lib/avm/launcher/errors/base.rb +0 -10
  192. data/sub/avm/lib/avm/launcher/errors/non_project.rb +0 -13
  193. data/sub/avm/lib/avm/launcher/instances/base/cache.rb +0 -43
  194. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +0 -53
  195. data/sub/avm/lib/avm/launcher/instances/base.rb +0 -77
  196. data/sub/avm/lib/avm/launcher/instances/error.rb +0 -10
  197. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +0 -43
  198. data/sub/avm/lib/avm/launcher/instances/settings.rb +0 -24
  199. data/sub/avm/lib/avm/launcher/paths/logical.rb +0 -78
  200. data/sub/avm/lib/avm/launcher/paths/real.rb +0 -44
  201. data/sub/avm/lib/avm/launcher/project.rb +0 -15
  202. data/sub/avm/lib/avm/launcher/publish/base.rb +0 -44
  203. data/sub/avm/lib/avm/launcher/publish/check_result.rb +0 -64
  204. data/sub/avm/lib/avm/launcher/stereotype.rb +0 -63
  205. data/sub/avm/lib/avm/patches/eac_config/entry_path.rb +0 -44
  206. data/sub/avm/lib/avm/path_string.rb +0 -27
  207. data/sub/avm/lib/avm/registry/application_scms.rb +0 -13
  208. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +0 -45
  209. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +0 -30
  210. data/sub/avm/lib/avm/registry/application_stereotypes.rb +0 -42
  211. data/sub/avm/lib/avm/registry/applications.rb +0 -35
  212. data/sub/avm/lib/avm/registry/base.rb +0 -26
  213. data/sub/avm/lib/avm/registry/config_objects.rb +0 -15
  214. data/sub/avm/lib/avm/registry/detection_error.rb +0 -8
  215. data/sub/avm/lib/avm/registry/file_formats.rb +0 -17
  216. data/sub/avm/lib/avm/registry/from_gems.rb +0 -67
  217. data/sub/avm/lib/avm/registry/instances.rb +0 -13
  218. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +0 -8
  219. data/sub/avm/lib/avm/registry/runners.rb +0 -8
  220. data/sub/avm/lib/avm/registry/scms.rb +0 -8
  221. data/sub/avm/lib/avm/registry/source_generators.rb +0 -14
  222. data/sub/avm/lib/avm/registry/sources.rb +0 -38
  223. data/sub/avm/lib/avm/registry/with_path/cache.rb +0 -28
  224. data/sub/avm/lib/avm/registry/with_path.rb +0 -44
  225. data/sub/avm/lib/avm/registry.rb +0 -31
  226. data/sub/avm/lib/avm/result.rb +0 -80
  227. data/sub/avm/lib/avm/rspec/launcher_controller.rb +0 -102
  228. data/sub/avm/lib/avm/rspec/setup/launcher.rb +0 -18
  229. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +0 -20
  230. data/sub/avm/lib/avm/rspec/setup.rb +0 -32
  231. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +0 -13
  232. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +0 -28
  233. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +0 -27
  234. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +0 -19
  235. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +0 -9
  236. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +0 -12
  237. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +0 -9
  238. data/sub/avm/lib/avm/rspec/shared_examples/with_launcher.rb +0 -13
  239. data/sub/avm/lib/avm/runner_with/file_replacer.rb +0 -28
  240. data/sub/avm/lib/avm/runner_with/filesystem_renamer.rb +0 -99
  241. data/sub/avm/lib/avm/runner_with/filesystem_traverser.rb +0 -49
  242. data/sub/avm/lib/avm/runners/base.rb +0 -25
  243. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +0 -47
  244. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +0 -79
  245. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +0 -37
  246. data/sub/avm/lib/avm/scms/auto_commit/rules/last.rb +0 -17
  247. data/sub/avm/lib/avm/scms/auto_commit/rules/manual.rb +0 -38
  248. data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +0 -21
  249. data/sub/avm/lib/avm/scms/auto_commit/rules/nth.rb +0 -29
  250. data/sub/avm/lib/avm/scms/auto_commit/rules/unique.rb +0 -19
  251. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +0 -32
  252. data/sub/avm/lib/avm/scms/base/branches.rb +0 -20
  253. data/sub/avm/lib/avm/scms/base/commits.rb +0 -32
  254. data/sub/avm/lib/avm/scms/base/milestones.rb +0 -19
  255. data/sub/avm/lib/avm/scms/base/remotes.rb +0 -20
  256. data/sub/avm/lib/avm/scms/base.rb +0 -59
  257. data/sub/avm/lib/avm/scms/branch.rb +0 -24
  258. data/sub/avm/lib/avm/scms/changed_file.rb +0 -46
  259. data/sub/avm/lib/avm/scms/commit.rb +0 -64
  260. data/sub/avm/lib/avm/scms/commit_info.rb +0 -37
  261. data/sub/avm/lib/avm/scms/inflector.rb +0 -22
  262. data/sub/avm/lib/avm/scms/interval.rb +0 -16
  263. data/sub/avm/lib/avm/scms/null/commit.rb +0 -11
  264. data/sub/avm/lib/avm/scms/null.rb +0 -16
  265. data/sub/avm/lib/avm/scms/remote.rb +0 -9
  266. data/sub/avm/lib/avm/self/docker_image.rb +0 -11
  267. data/sub/avm/lib/avm/self/instance/entry_keys.rb +0 -12
  268. data/sub/avm/lib/avm/self/instance.rb +0 -27
  269. data/sub/avm/lib/avm/source_generators/base.rb +0 -69
  270. data/sub/avm/lib/avm/source_generators/option.rb +0 -11
  271. data/sub/avm/lib/avm/source_generators/option_list.rb +0 -29
  272. data/sub/avm/lib/avm/source_generators/runner.rb +0 -55
  273. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +0 -29
  274. data/sub/avm/lib/avm/sources/base/application.rb +0 -32
  275. data/sub/avm/lib/avm/sources/base/configuration.rb +0 -89
  276. data/sub/avm/lib/avm/sources/base/instance.rb +0 -13
  277. data/sub/avm/lib/avm/sources/base/locale.rb +0 -30
  278. data/sub/avm/lib/avm/sources/base/organizational.rb +0 -30
  279. data/sub/avm/lib/avm/sources/base/parent.rb +0 -26
  280. data/sub/avm/lib/avm/sources/base/stereotype.rb +0 -16
  281. data/sub/avm/lib/avm/sources/base/sub/remove.rb +0 -36
  282. data/sub/avm/lib/avm/sources/base/sub.rb +0 -23
  283. data/sub/avm/lib/avm/sources/base/subs.rb +0 -63
  284. data/sub/avm/lib/avm/sources/base/subs_paths.rb +0 -30
  285. data/sub/avm/lib/avm/sources/base/testing.rb +0 -67
  286. data/sub/avm/lib/avm/sources/base/update.rb +0 -65
  287. data/sub/avm/lib/avm/sources/base/update_sub.rb +0 -55
  288. data/sub/avm/lib/avm/sources/base/update_subs.rb +0 -17
  289. data/sub/avm/lib/avm/sources/base/version_bump.rb +0 -26
  290. data/sub/avm/lib/avm/sources/base.rb +0 -56
  291. data/sub/avm/lib/avm/sources/change.rb +0 -22
  292. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +0 -26
  293. data/sub/avm/lib/avm/sources/configuration.rb +0 -57
  294. data/sub/avm/lib/avm/sources/issues/deliver.rb +0 -51
  295. data/sub/avm/lib/avm/sources/runner.rb +0 -38
  296. data/sub/avm/lib/avm/sources/tests/builder.rb +0 -94
  297. data/sub/avm/lib/avm/sources/tests/performer.rb +0 -32
  298. data/sub/avm/lib/avm/sources/tests/result.rb +0 -13
  299. data/sub/avm/lib/avm/sources/tests/single.rb +0 -71
  300. data/sub/avm/lib/avm/sources/update_error.rb +0 -8
  301. data/sub/avm/lib/avm/sync.rb +0 -90
  302. data/sub/avm/lib/avm/version.rb +0 -5
  303. data/sub/avm/lib/avm/version_number.rb +0 -45
  304. data/sub/avm/lib/avm/with/application_stereotype.rb +0 -29
  305. data/sub/avm/lib/avm/with/extra_subcommands.rb +0 -41
  306. data/sub/avm/lib/avm.rb +0 -18
  307. data/sub/avm/locale/en.yml +0 -6
  308. data/sub/avm/locale/pt-BR.yml +0 -6
  309. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +0 -29
  310. data/sub/avm/spec/lib/avm/applications/base/entries_spec_files/config.yml +0 -12
  311. data/sub/avm/spec/lib/avm/applications/base_spec.rb +0 -21
  312. data/sub/avm/spec/lib/avm/applications/base_spec_fixture.yml +0 -3
  313. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +0 -9
  314. data/sub/avm/spec/lib/avm/instances/base/entries_spec.rb +0 -78
  315. data/sub/avm/spec/lib/avm/instances/base/entries_spec_files/config.yml +0 -50
  316. data/sub/avm/spec/lib/avm/instances/base_spec.rb +0 -29
  317. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +0 -102
  318. data/sub/avm/spec/lib/avm/launcher/context_spec.yml +0 -5
  319. data/sub/avm/spec/lib/avm/launcher/context_spec_files/config.yml +0 -9
  320. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +0 -39
  321. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/config.yml +0 -5
  322. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/settings.yaml +0 -5
  323. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +0 -26
  324. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +0 -20
  325. data/sub/avm/spec/lib/avm/scms/base_spec.rb +0 -5
  326. data/sub/avm/spec/lib/avm/sources/base_spec.rb +0 -5
  327. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +0 -7
  328. data/sub/avm/spec/meta/rubocop_spec.rb +0 -3
  329. data/sub/avm/spec/spec_helper/launcher_context/settings.yml +0 -6
  330. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/avm-tools.gemspec +0 -29
  331. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools/version.rb +0 -7
  332. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +0 -5
  333. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +0 -16
  334. data/sub/avm/template/avm/rspec/launcher_controller/settings.yml +0 -1
  335. data/sub/avm/template/avm/self/docker_image/Dockerfile +0 -17
  336. data/sub/avm/template/avm/self/docker_image/entrypoint.sh +0 -12
  337. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/spec/meta/rubocop_spec.rb +0 -3
  338. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/spec/meta/rubocop_spec.rb +0 -3
  339. data/sub/avm-eac_ruby_base1/spec/meta/rubocop_spec.rb +0 -3
  340. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/spec/meta/rubocop_spec.rb +0 -3
  341. /data/sub/{avm → avm-eac_ruby_base0}/.rspec +0 -0
  342. /data/sub/{avm → avm-eac_ruby_base0}/.rubocop.yml +0 -0
  343. /data/sub/{avm → avm-eac_ruby_base0}/Gemfile +0 -0
  344. /data/sub/{avm → eac_ruby_gem_support}/.gitignore +0 -0
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils'
4
- EacRubyUtils::RootModuleSetup.perform __FILE__
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__
5
5
 
6
6
  module Mygem
7
7
  end
@@ -1,8 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils'
4
- EacRubyUtils::RootModuleSetup.perform __FILE__
5
-
6
- %%ROOT_MODULE_OPEN%%
7
- %%ROOT_MODULE_CLOSE%%
8
- %%ROOT_MODULE_AFTER_CLOSE%%
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__%%ROOT_MODULE_SETUP_BLOCK%%
@@ -0,0 +1,7 @@
1
+ [subrepo]
2
+ cmdver = 0.4.9
3
+ commit = d822939e4c6e6ea685dce5ad7d9d4448ffd07897
4
+ method = merge
5
+ parent = f5da070552093242efc37b1ac39c2bb51691914f
6
+ branch = master
7
+ remote = https://github.com/esquilo-azul/eac_ruby_gem_support.git
@@ -0,0 +1 @@
1
+ --require spec_helper
@@ -0,0 +1,45 @@
1
+ plugins:
2
+ - rubocop-rails
3
+ - rubocop-rspec
4
+ AllCops:
5
+ NewCops: enable
6
+ TargetRailsVersion: 6.1
7
+ TargetRubyVersion: 3.2
8
+ Exclude:
9
+ - 'sub/**/*'
10
+ Gemspec/DevelopmentDependencies:
11
+ Enabled: false
12
+ Gemspec/RequireMFA:
13
+ Enabled: false
14
+ Metrics/BlockLength:
15
+ Exclude:
16
+ - '**/*.gemspec'
17
+ - 'spec/**/*_spec.rb'
18
+ Layout/LineLength:
19
+ Max: 100
20
+ Layout/MultilineMethodCallIndentation:
21
+ EnforcedStyle: indented_relative_to_receiver
22
+ Rails/DynamicFindBy:
23
+ Enabled: false
24
+ Rails/Exit:
25
+ Enabled: false
26
+ Rails/FindEach:
27
+ Enabled: false
28
+ Rails/Output:
29
+ Enabled: false
30
+ Rails/SkipsModelValidations:
31
+ Enabled: false
32
+ Rails/TimeZone:
33
+ Enabled: false
34
+ RSpec/IncludeExamples:
35
+ Enabled: false # TODO: fix error with source_target_fixtures and it_behaves_like
36
+ RSpec/MultipleMemoizedHelpers:
37
+ Enabled: false
38
+ RSpec/NestedGroups:
39
+ Enabled: false
40
+ Style/AsciiComments:
41
+ Enabled: false
42
+ Style/Documentation:
43
+ Enabled: false
44
+ Style/SafeNavigation: # Bug with rubocop's version 1.76.0
45
+ Enabled: false
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
6
+
7
+ local_gemfile = File.join(File.dirname(__FILE__), 'Gemfile.local')
8
+ eval_gemfile local_gemfile if File.exist?(local_gemfile)
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+
5
+ require 'eac_ruby_gem_support/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'eac_ruby_gem_support'
9
+ s.version = EacRubyGemSupport::VERSION
10
+ s.authors = ['Esquilo Azul Company']
11
+ s.summary = 'Development support for Ruby\' Gem.'
12
+ s.homepage = 'https://github.com/esquilo-azul/eac_ruby_gem_support'
13
+ s.metadata = { 'source_code_uri' => 'https://github.com/esquilo-azul/eac_ruby_gem_support' }
14
+
15
+ s.files = Dir.glob('{lib}/**/*', File::FNM_DOTMATCH)
16
+ .reject { |f| ['.', '..'].include?(File.basename(f)) } +
17
+ ['.rubocop.yml']
18
+
19
+ s.required_ruby_version = '>= 3.2'
20
+
21
+ s.add_dependency 'eac_ruby_base1', '~> 0.1'
22
+ s.add_dependency 'rspec', '~> 3.13', '>= 3.13.2'
23
+ s.add_dependency 'rubocop', '~> 1.88', '>= 1.88.2'
24
+ s.add_dependency 'rubocop-rails', '~> 2.36'
25
+ s.add_dependency 'rubocop-rspec', '~> 3.10', '>= 3.10.2'
26
+ s.add_dependency 'super_diff', '~> 0.19'
27
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'fileutils'
4
+ require 'tmpdir'
5
+ require 'tempfile'
6
+
7
+ module EacRubyGemSupport
8
+ module Rspec
9
+ module Helpers
10
+ module Filesystem
11
+ def purge_temp_files
12
+ ::FileUtils.rm_rf(temp_set.pop) while temp_set.any?
13
+ end
14
+
15
+ # @return [Pathname]
16
+ def temp_copy(source_path)
17
+ source_path = to_pathname(source_path)
18
+ if source_path.file?
19
+ temp_file_copy(source_path)
20
+ elsif source_path.directory?
21
+ temp_dir_copy(source_path)
22
+ else
23
+ raise "Source path \"#{source_path}\" is not a file or directory"
24
+ end
25
+ end
26
+
27
+ # @return [Pathname]
28
+ def temp_dir(*mktmpdir_args)
29
+ add_to_temp_set(::Dir.mktmpdir(*mktmpdir_args))
30
+ end
31
+
32
+ # @return [Pathname]
33
+ def temp_dir_copy(source_path)
34
+ r = temp_dir
35
+ ::FileUtils.cp_r("#{source_path}/.", r.to_path)
36
+ r
37
+ end
38
+
39
+ # @return [Pathname]
40
+ def temp_file(*tempfile_args)
41
+ file = ::Tempfile.new(*tempfile_args)
42
+ path = file.path
43
+ file.close
44
+ add_to_temp_set(path)
45
+ end
46
+
47
+ # @return [Pathname]
48
+ def temp_file_copy(source_path)
49
+ r = temp_file
50
+ ::FileUtils.cp(to_pathname(source_path).to_path, r.to_path)
51
+ r
52
+ end
53
+
54
+ # @return [Pathname]
55
+ def to_pathname(path)
56
+ path.is_a?(::Pathname) ? path : ::Pathname.new(path.to_s)
57
+ end
58
+
59
+ private
60
+
61
+ def add_to_temp_set(path)
62
+ r = to_pathname(path)
63
+ temp_set << r
64
+ r
65
+ end
66
+
67
+ def temp_set
68
+ @temp_set ||= []
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'fileutils'
4
+ require 'tmpdir'
5
+ require 'tempfile'
6
+
7
+ module EacRubyGemSupport
8
+ module Rspec
9
+ module Helpers
10
+ module Utils
11
+ # @return [StandardError, nil] If block raises an error, return this error. If not, return
12
+ # +nil+.
13
+ def capture_error
14
+ yield
15
+ nil
16
+ rescue ::StandardError => e
17
+ e
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rspec'
4
+ require 'rubocop'
5
+
6
+ module EacRubyGemSupport
7
+ module Rspec
8
+ module Setup
9
+ module Rubocop
10
+ RUN_LAST_METADATA_KEY = :eac_ruby_gem_support_rubocop_check
11
+
12
+ def describe_rubocop # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
13
+ this = self
14
+ ::RSpec.describe ::RuboCop, RUN_LAST_METADATA_KEY => true do
15
+ before do
16
+ ::RuboCop::ConfigLoader.ignore_parent_exclusion = true
17
+ end
18
+
19
+ let(:root_path) { this.app_root_path }
20
+ let(:config_store) do
21
+ r = ::RuboCop::ConfigStore.new
22
+ r.for(root_path)
23
+ r
24
+ end
25
+ let(:runner) { ::RuboCop::Runner.new({}, config_store) }
26
+
27
+ it 'rubocop return ok' do
28
+ expect(::Dir.chdir(root_path) { runner.run([]) }).to eq(true)
29
+ end
30
+ end
31
+ end
32
+
33
+ # @return [void]
34
+ def setup_rubocop
35
+ setup_rubocop_last
36
+ describe_rubocop unless specific_files_requested?
37
+ end
38
+
39
+ # @return [void]
40
+ def setup_rubocop_last
41
+ previous_strategy = ::RSpec.configuration.ordering_registry.fetch(:global)
42
+ ::RSpec.configure do |config|
43
+ config.register_ordering(:global) do |list|
44
+ ordered = previous_strategy.order(list)
45
+ last, others = ordered.partition { |item| item.metadata[RUN_LAST_METADATA_KEY] }
46
+ others + last
47
+ end
48
+ end
49
+ end
50
+
51
+ # @return [Boolean]
52
+ def specific_files_requested?
53
+ config = ::RSpec.configuration
54
+ files_or_directories = config.instance_variable_get(:@files_or_directories_to_run)
55
+ default_pattern = ::RSpec::Core::Configuration.new.pattern
56
+ files_or_directories != [config.default_path] || config.pattern != default_pattern
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'tmpdir'
4
+
5
+ module EacRubyGemSupport
6
+ module Rspec
7
+ module Setup
8
+ extend ::ActiveSupport::Concern
9
+
10
+ SETUPS = %w[load_path example_persistence filesystem_helper shared_examples rubocop].freeze
11
+
12
+ def self.extended(setup_obj)
13
+ SETUPS.each { |s| setup_obj.send("setup_#{s}") }
14
+ end
15
+
16
+ def setup_filesystem_helper
17
+ rspec_config.include ::EacRubyGemSupport::Rspec::Helpers::Filesystem
18
+ rspec_config.include ::EacRubyGemSupport::Rspec::Helpers::Utils
19
+ rspec_config.after(:each) { purge_temp_files }
20
+ end
21
+
22
+ def setup_load_path
23
+ $LOAD_PATH.push app_root_path.join('lib').to_path
24
+ end
25
+
26
+ def setup_example_persistence
27
+ rspec_config.example_status_persistence_file_path = example_persistence_path.to_path
28
+ end
29
+
30
+ def setup_shared_examples
31
+ require 'eac_ruby_gem_support/rspec/shared_examples/spec_paths'
32
+ require 'eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures'
33
+ end
34
+
35
+ # @return [Pathname]
36
+ def example_persistence_path
37
+ root_tmp.join('example_status_persistence')
38
+ end
39
+
40
+ # The root directory for temporary files.
41
+ # @return [Pathname]
42
+ def root_tmp
43
+ r = ::Pathname.new(::Dir.tmpdir)
44
+ .join("#{app_root_path.expand_path.to_path.variableize}_specs_tmp")
45
+ r.mkpath unless r.exist?
46
+ r
47
+ end
48
+
49
+ require_sub __FILE__, include_modules: true
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+
5
+ RSpec.shared_examples 'source_target_fixtures' do |spec_file| # rubocop:disable Metrics/BlockLength
6
+ include_examples 'spec_paths', spec_file
7
+ fixtures_controller = EacRubyGemSupport::Rspec::SourceTargetFixturesController
8
+ .new(spec_paths_controller)
9
+
10
+ let(:fixtures_controller) { fixtures_controller }
11
+ let(:spec_file) { spec_file }
12
+
13
+ it 'fixtures directory should exist' do
14
+ expect(File.directory?(fixtures_controller.fixtures_dir)).to be true
15
+ end
16
+
17
+ context 'with fixtures directory' do
18
+ it 'has at least one file' do
19
+ expect(source_target_fixtures.source_target_files.count).to be > 0 # rubocop:disable Style/NumericPredicate
20
+ end
21
+
22
+ fixtures_controller.source_target_fixtures.source_target_files.each do |st|
23
+ context "when source file is \"#{File.basename(st.source)}\"" do
24
+ if fixtures_controller.write_target_fixtures?
25
+ it 'writes target data' do
26
+ sd = sort_results(source_data(st.source))
27
+ basename = EacRubyGemSupport::SourceTargetFixtures.source_target_basename(st.source)
28
+ target_file = File.expand_path("../#{basename}.target#{target_file_extname}", st.source)
29
+ File.write(target_file, target_content(sd))
30
+ end
31
+ else
32
+ it 'parses data' do
33
+ assert_source_target_complete(st)
34
+ sd = source_data(st.source)
35
+ td = target_data(st.target)
36
+ expect(sort_results(sd)).to eq(sort_results(td))
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ delegate :source_target_fixtures, to: :fixtures_controller
44
+
45
+ def assert_source_target_complete(source_target)
46
+ expect(source_target.source).to(be_truthy, "Source not found (Target: #{source_target.target})")
47
+ expect(source_target.target).to(be_truthy, "Target not found (Source: #{source_target.source})")
48
+ end
49
+
50
+ def source_data(source_file)
51
+ instance = described_class.new(source_file)
52
+ return instance.data if instance.respond_to?(:data)
53
+
54
+ raise "#{instance} has no \"data\" method. You need to implement \"#{instance}.data\" or " \
55
+ "\"#{self}.source_data(source_file)\""
56
+ end
57
+
58
+ def sort_results(results)
59
+ results
60
+ end
61
+
62
+ def target_data(target_file)
63
+ YAML.unsafe_load_file(target_file)
64
+ end
65
+
66
+ def target_content(data)
67
+ data.to_yaml
68
+ end
69
+
70
+ def target_file_extname
71
+ '.yaml'
72
+ end
73
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.shared_context 'spec_paths' do |the_spec_file|
4
+ cattr_accessor :spec_paths_controller
5
+ self.spec_paths_controller = EacRubyGemSupport::Rspec::SpecPathsController.new(self,
6
+ the_spec_file)
7
+
8
+ %i[fixtures_directory spec_directory spec_file].each do |m|
9
+ let(m) { self.class.spec_paths_controller.send(m) }
10
+ end
11
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyGemSupport
4
+ module Rspec
5
+ class SourceTargetFixturesController
6
+ enable_simple_cache
7
+ common_constructor :spec_paths_controller
8
+ delegate :example, to: :spec_paths_controller
9
+
10
+ def fixtures_dir
11
+ if example.respond_to?(:fixtures_dir)
12
+ example.fixtures_dir
13
+ else
14
+ spec_paths_controller.fixtures_directory
15
+ end
16
+ end
17
+
18
+ def write_target_fixtures?
19
+ ENV['WRITE_TARGET_FIXTURES'].to_bool
20
+ end
21
+
22
+ private
23
+
24
+ def source_target_fixtures_uncached
25
+ ::EacRubyGemSupport::SourceTargetFixtures.new(fixtures_dir)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyGemSupport
4
+ module Rspec
5
+ class SpecPathsController
6
+ # @!attribute [r] spec_file
7
+ # @return [Pathname]
8
+
9
+ # @!method initialize(example, spec_file)
10
+ # @param example [RSpec::Core::ExampleGroup]
11
+ # @param spec_file [Pathname]
12
+ common_constructor :example, :spec_file do
13
+ self.spec_file = spec_file.to_pathname
14
+ end
15
+
16
+ # @return [Pathname]
17
+ def fixtures_directory
18
+ spec_directory.join(spec_file.basename('.*')).basename_sub { |b| "#{b}_files" }
19
+ end
20
+
21
+ # @return [Pathname]
22
+ def spec_directory
23
+ spec_file.parent
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyGemSupport
4
+ class SourceTargetFixtures
5
+ class SourceTargetFile
6
+ common_constructor :owner, :basename
7
+
8
+ def source
9
+ owner.source_file(basename)
10
+ end
11
+
12
+ def target
13
+ owner.target_file(basename)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyGemSupport
4
+ # Lists pairs of source/target files in a directory.
5
+ class SourceTargetFixtures
6
+ class << self
7
+ def source_target_basename(file)
8
+ m = /^(.+)\.(?:source|target)(?:\..+)?$/.match(File.basename(file))
9
+ m ? m[1] : nil
10
+ end
11
+ end
12
+
13
+ # @!attribute [r] fixtures_directory
14
+ # @return [String]
15
+
16
+ # @!method initialize(fixtures_directory)
17
+ # @param fixtures_directory [Pathname]
18
+ common_constructor :fixtures_directory
19
+
20
+ def source_target_files
21
+ sources_targets_basenames.map do |basename|
22
+ ::EacRubyGemSupport::SourceTargetFixtures::SourceTargetFile.new(self, basename)
23
+ end
24
+ end
25
+
26
+ def source_files
27
+ r = []
28
+ source_target_files.each do |st|
29
+ r << st.source if st.source
30
+ end
31
+ r
32
+ end
33
+
34
+ def target_files
35
+ r = []
36
+ source_target_files.each do |st|
37
+ r << st.target if st.target
38
+ end
39
+ r
40
+ end
41
+
42
+ def target_file(basename)
43
+ fixture_file(basename, 'target')
44
+ end
45
+
46
+ def source_file(basename)
47
+ fixture_file(basename, 'source')
48
+ end
49
+
50
+ private
51
+
52
+ def fixture_file(basename, suffix)
53
+ prefix = "#{basename}.#{suffix}"
54
+ Dir.foreach(fixtures_directory) do |item|
55
+ next if %w[. ..].include?(item)
56
+ return File.expand_path(item, fixtures_directory) if item.starts_with?(prefix)
57
+ end
58
+ nil
59
+ end
60
+
61
+ def sources_targets_basenames
62
+ basenames = Set.new
63
+ Dir.foreach(fixtures_directory) do |item|
64
+ next if %w[. ..].include?(item)
65
+
66
+ b = self.class.source_target_basename(item)
67
+ basenames << b if b.present?
68
+ end
69
+ basenames
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyGemSupport
4
+ VERSION = '0.14.0'
5
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__ do
5
+ ignore 'rspec/shared_examples/**/*'
6
+ require 'active_support/ordered_options' # Fix "super_diff" '0.18.0'.
7
+ require 'super_diff'
8
+ require 'super_diff/active_support'
9
+ require 'super_diff/rspec'
10
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe EacRubyGemSupport::Rspec::Helpers::Filesystem do
4
+ describe '#temp_file' do
5
+ let(:a_temp_file) { temp_file }
6
+
7
+ it { expect(temp_file).to be_file }
8
+ end
9
+
10
+ describe '#temp_dir' do
11
+ let(:a_temp_dir) { temp_dir }
12
+
13
+ it { expect(temp_dir).to be_directory }
14
+ end
15
+
16
+ describe '#temp_copy' do
17
+ let(:source_file) { Pathname.new(__FILE__) }
18
+ let(:source_dir) { source_file.parent }
19
+ let(:file_copy) { temp_copy(source_file) }
20
+ let(:dir_copy) { temp_copy(source_dir) }
21
+
22
+ it { expect(file_copy).to be_file }
23
+ it { expect(file_copy.read).to eq(source_file.read) }
24
+ it { expect(file_copy).not_to eq(source_file) }
25
+
26
+ it { expect(dir_copy).to be_directory }
27
+ it { expect(dir_copy.join(source_file.basename).read).to eq(source_file.read) }
28
+ it { expect(dir_copy).not_to eq(source_dir) }
29
+ end
30
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+
5
+ RSpec.describe "RSpec.shared_examples('source_target_fixtures')" do # rubocop:disable RSpec/DescribeClass
6
+ include_examples 'source_target_fixtures', __FILE__
7
+
8
+ def source_data(file)
9
+ YAML.load_file(file)
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe "RSpec.shared_examples('spec_paths')" do # rubocop:disable RSpec/DescribeClass
4
+ include_context 'spec_paths', __FILE__
5
+
6
+ it do
7
+ expect(spec_file).to eq(__FILE__.to_pathname)
8
+ end
9
+
10
+ it do
11
+ expect(spec_directory).to eq(__FILE__.to_pathname.dirname)
12
+ end
13
+
14
+ it do
15
+ expect(fixtures_directory).to eq(__FILE__.to_pathname.dirname.join('spec_paths_spec_files'))
16
+ end
17
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe EacRubyGemSupport::SourceTargetFixtures do
4
+ let(:fixtures_dir) { File.join(__dir__, 'source_target_fixtures_spec_files') }
5
+ let(:instance) { described_class.new(fixtures_dir) }
6
+
7
+ describe '#source_target_files' do
8
+ it { expect(instance.source_target_files.count).to eq(3) }
9
+
10
+ (1..3).each do |index|
11
+ basename = "stub#{index}" # rubocop:disable RSpec/LeakyLocalVariable
12
+ let(basename) { instance.source_target_files.find { |stf| stf.basename == basename } }
13
+
14
+ it { expect(send(basename)).to be_present }
15
+ it { expect(send(basename).basename).to eq(basename) }
16
+ end
17
+
18
+ it { expect(stub1.source).to eq(File.join(fixtures_dir, 'stub1.source.txt')) }
19
+ it { expect(stub1.target).to eq(File.join(fixtures_dir, 'stub1.target.html')) }
20
+ it { expect(stub2.source).to eq(File.join(fixtures_dir, 'stub2.source.html')) }
21
+ it { expect(stub2.target).to be_nil }
22
+ it { expect(stub3.source).to be_nil }
23
+ it { expect(stub3.target).to eq(File.join(fixtures_dir, 'stub3.target.yaml')) }
24
+ end
25
+ end