eac_tools 0.113.1 → 0.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +40 -39
  3. data/eac_tools.gemspec +9 -7
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/sub/avm-eac_ruby_base0/.gitignore +2 -0
  6. data/sub/avm-eac_ruby_base0/.gitrepo +7 -0
  7. data/sub/avm-eac_ruby_base0/.rspec +1 -0
  8. data/sub/avm-eac_ruby_base0/.rubocop.yml +3 -0
  9. data/sub/avm-eac_ruby_base0/avm-eac_ruby_base0.gemspec +4 -4
  10. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/version.rb +1 -1
  11. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec.rb +1 -1
  12. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/.rspec +1 -0
  13. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/.rubocop.yml +3 -0
  14. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/dashed-mygem.gemspec +1 -1
  15. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/.rspec +1 -0
  16. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/.rubocop.yml +3 -0
  17. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/mygem_underscore.gemspec +1 -1
  18. data/sub/avm-eac_ruby_base1/.gitignore +2 -0
  19. data/sub/avm-eac_ruby_base1/.gitrepo +7 -0
  20. data/sub/avm-eac_ruby_base1/.rspec +1 -0
  21. data/sub/avm-eac_ruby_base1/.rubocop.yml +3 -0
  22. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +4 -4
  23. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base/file_resource_name.rb +2 -2
  24. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/instances/mixin.rb +1 -1
  25. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem/build.rb +2 -2
  26. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop.rb +2 -2
  27. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/version_file.rb +1 -1
  28. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/gemspec.rb +1 -1
  29. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rake.rb +2 -2
  30. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock.rb +2 -2
  31. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
  32. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec_files/changes1.target.txt +1 -1
  33. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec_files/the_gem.gemspec +1 -1
  34. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir1/.avm.yml +4 -0
  35. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir4/.avm.yml +4 -0
  36. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/.rspec +1 -0
  37. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/.rubocop.yml +3 -0
  38. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/dashed-mygem.gemspec +1 -1
  39. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/.rspec +1 -0
  40. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/.rubocop.yml +3 -0
  41. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/mygem.gemspec +1 -1
  42. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/mygem.gemspec +1 -1
  43. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/.gitignore +2 -0
  44. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/.rspec +1 -0
  45. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/.rubocop.yml +3 -0
  46. data/sub/eac_ruby_gem_support/.gitignore +2 -0
  47. data/sub/eac_ruby_gem_support/.gitrepo +7 -0
  48. data/sub/eac_ruby_gem_support/.rspec +1 -0
  49. data/sub/eac_ruby_gem_support/.rubocop.yml +45 -0
  50. data/sub/eac_ruby_gem_support/eac_ruby_gem_support.gemspec +27 -0
  51. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/helpers/filesystem.rb +73 -0
  52. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/helpers/utils.rb +22 -0
  53. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/setup.rb +51 -0
  54. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures.rb +73 -0
  55. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths.rb +11 -0
  56. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/source_target_fixtures_controller.rb +29 -0
  57. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/spec_paths_controller.rb +27 -0
  58. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/specs/rubocop.rb +33 -0
  59. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures/source_target_file.rb +17 -0
  60. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures.rb +72 -0
  61. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/version.rb +5 -0
  62. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support.rb +14 -0
  63. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/helpers/filesystem_spec.rb +30 -0
  64. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec.rb +11 -0
  65. 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
  66. 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
  67. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths_spec.rb +17 -0
  68. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec.rb +25 -0
  69. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub1.source.txt +1 -0
  70. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub1.target.html +1 -0
  71. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub2.source.html +1 -0
  72. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub3.target.yaml +1 -0
  73. data/sub/{avm → eac_ruby_gem_support}/spec/spec_helper.rb +2 -4
  74. metadata +68 -262
  75. data/sub/avm/avm.gemspec +0 -28
  76. data/sub/avm/lib/avm/application_scms/base.rb +0 -37
  77. data/sub/avm/lib/avm/application_stereotypes/base.rb +0 -29
  78. data/sub/avm/lib/avm/applications/base/auto_local_source_path.rb +0 -22
  79. data/sub/avm/lib/avm/applications/base/local_instance.rb +0 -28
  80. data/sub/avm/lib/avm/applications/base/local_source.rb +0 -31
  81. data/sub/avm/lib/avm/applications/base/naming.rb +0 -26
  82. data/sub/avm/lib/avm/applications/base/organization.rb +0 -27
  83. data/sub/avm/lib/avm/applications/base/publishing.rb +0 -39
  84. data/sub/avm/lib/avm/applications/base/scm.rb +0 -24
  85. data/sub/avm/lib/avm/applications/base/stereotype.rb +0 -29
  86. data/sub/avm/lib/avm/applications/base.rb +0 -34
  87. data/sub/avm/lib/avm/data/callbacks.rb +0 -36
  88. data/sub/avm/lib/avm/data/clearer.rb +0 -17
  89. data/sub/avm/lib/avm/data/dumper.rb +0 -137
  90. data/sub/avm/lib/avm/data/loader.rb +0 -23
  91. data/sub/avm/lib/avm/data/package/base_performer.rb +0 -36
  92. data/sub/avm/lib/avm/data/package/build_directory.rb +0 -25
  93. data/sub/avm/lib/avm/data/package/clear.rb +0 -19
  94. data/sub/avm/lib/avm/data/package/dump.rb +0 -42
  95. data/sub/avm/lib/avm/data/package/load.rb +0 -33
  96. data/sub/avm/lib/avm/data/package.rb +0 -64
  97. data/sub/avm/lib/avm/data/performer.rb +0 -45
  98. data/sub/avm/lib/avm/data/rotate.rb +0 -106
  99. data/sub/avm/lib/avm/data/unit.rb +0 -44
  100. data/sub/avm/lib/avm/data/unit_with_commands.rb +0 -48
  101. data/sub/avm/lib/avm/docker/container.rb +0 -47
  102. data/sub/avm/lib/avm/docker/image.rb +0 -70
  103. data/sub/avm/lib/avm/docker/runner.rb +0 -129
  104. data/sub/avm/lib/avm/entries/auto_values/entry.rb +0 -36
  105. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +0 -21
  106. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +0 -42
  107. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +0 -24
  108. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +0 -35
  109. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +0 -27
  110. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +0 -40
  111. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +0 -40
  112. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +0 -59
  113. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +0 -16
  114. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +0 -22
  115. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +0 -23
  116. data/sub/avm/lib/avm/entries/base.rb +0 -53
  117. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +0 -21
  118. data/sub/avm/lib/avm/entries/entry.rb +0 -69
  119. data/sub/avm/lib/avm/entries/jobs/base.rb +0 -58
  120. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +0 -48
  121. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +0 -13
  122. data/sub/avm/lib/avm/entries/jobs/with_variables_source.rb +0 -13
  123. data/sub/avm/lib/avm/entries/keys_constants_set.rb +0 -41
  124. data/sub/avm/lib/avm/entries/uri_builder.rb +0 -87
  125. data/sub/avm/lib/avm/executables.rb +0 -21
  126. data/sub/avm/lib/avm/file_formats/base.rb +0 -34
  127. data/sub/avm/lib/avm/file_formats/file_result.rb +0 -11
  128. data/sub/avm/lib/avm/file_formats/search_formatter.rb +0 -83
  129. data/sub/avm/lib/avm/file_formats/unknown.rb +0 -15
  130. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +0 -72
  131. data/sub/avm/lib/avm/files/appendable/file_content.rb +0 -28
  132. data/sub/avm/lib/avm/files/appendable/plain_directory.rb +0 -27
  133. data/sub/avm/lib/avm/files/appendable/resource_base.rb +0 -17
  134. data/sub/avm/lib/avm/files/appendable/tar_output_command.rb +0 -27
  135. data/sub/avm/lib/avm/files/appendable/templatized_directory.rb +0 -36
  136. data/sub/avm/lib/avm/files/appendable.rb +0 -51
  137. data/sub/avm/lib/avm/files/appender.rb +0 -9
  138. data/sub/avm/lib/avm/files/deploy.rb +0 -70
  139. data/sub/avm/lib/avm/files/text_replacer/gsub.rb +0 -22
  140. data/sub/avm/lib/avm/files/text_replacer.rb +0 -29
  141. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +0 -28
  142. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +0 -60
  143. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +0 -31
  144. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +0 -16
  145. data/sub/avm/lib/avm/instances/base/auto_values.rb +0 -12
  146. data/sub/avm/lib/avm/instances/base/dockerizable.rb +0 -41
  147. data/sub/avm/lib/avm/instances/base/entry_keys.rb +0 -25
  148. data/sub/avm/lib/avm/instances/base/install.rb +0 -28
  149. data/sub/avm/lib/avm/instances/base/processes.rb +0 -25
  150. data/sub/avm/lib/avm/instances/base/production.rb +0 -33
  151. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +0 -23
  152. data/sub/avm/lib/avm/instances/base/web.rb +0 -15
  153. data/sub/avm/lib/avm/instances/base.rb +0 -70
  154. data/sub/avm/lib/avm/instances/data/files_unit.rb +0 -57
  155. data/sub/avm/lib/avm/instances/data/loading_denied_error.rb +0 -10
  156. data/sub/avm/lib/avm/instances/data/package.rb +0 -25
  157. data/sub/avm/lib/avm/instances/data/unit.rb +0 -36
  158. data/sub/avm/lib/avm/instances/docker_image.rb +0 -13
  159. data/sub/avm/lib/avm/instances/entry_keys.rb +0 -39
  160. data/sub/avm/lib/avm/instances/ids.rb +0 -28
  161. data/sub/avm/lib/avm/instances/process.rb +0 -29
  162. data/sub/avm/lib/avm/instances/runner.rb +0 -34
  163. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +0 -44
  164. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_instance_paths.rb +0 -51
  165. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +0 -53
  166. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +0 -34
  167. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +0 -32
  168. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +0 -74
  169. data/sub/avm/lib/avm/launcher/context/settings.rb +0 -51
  170. data/sub/avm/lib/avm/launcher/context.rb +0 -83
  171. data/sub/avm/lib/avm/launcher/errors/base.rb +0 -10
  172. data/sub/avm/lib/avm/launcher/errors/non_project.rb +0 -13
  173. data/sub/avm/lib/avm/launcher/instances/base/cache.rb +0 -43
  174. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +0 -53
  175. data/sub/avm/lib/avm/launcher/instances/base.rb +0 -77
  176. data/sub/avm/lib/avm/launcher/instances/error.rb +0 -10
  177. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +0 -43
  178. data/sub/avm/lib/avm/launcher/instances/settings.rb +0 -24
  179. data/sub/avm/lib/avm/launcher/paths/logical.rb +0 -76
  180. data/sub/avm/lib/avm/launcher/paths/real.rb +0 -44
  181. data/sub/avm/lib/avm/launcher/project.rb +0 -15
  182. data/sub/avm/lib/avm/launcher/publish/base.rb +0 -44
  183. data/sub/avm/lib/avm/launcher/publish/check_result.rb +0 -64
  184. data/sub/avm/lib/avm/launcher/stereotype.rb +0 -63
  185. data/sub/avm/lib/avm/patches/eac_config/entry_path.rb +0 -44
  186. data/sub/avm/lib/avm/path_string.rb +0 -27
  187. data/sub/avm/lib/avm/registry/application_scms.rb +0 -13
  188. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +0 -45
  189. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +0 -30
  190. data/sub/avm/lib/avm/registry/application_stereotypes.rb +0 -42
  191. data/sub/avm/lib/avm/registry/applications.rb +0 -35
  192. data/sub/avm/lib/avm/registry/base.rb +0 -26
  193. data/sub/avm/lib/avm/registry/config_objects.rb +0 -15
  194. data/sub/avm/lib/avm/registry/detection_error.rb +0 -8
  195. data/sub/avm/lib/avm/registry/file_formats.rb +0 -17
  196. data/sub/avm/lib/avm/registry/from_gems.rb +0 -67
  197. data/sub/avm/lib/avm/registry/instances.rb +0 -13
  198. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +0 -8
  199. data/sub/avm/lib/avm/registry/runners.rb +0 -8
  200. data/sub/avm/lib/avm/registry/scms.rb +0 -8
  201. data/sub/avm/lib/avm/registry/source_generators.rb +0 -14
  202. data/sub/avm/lib/avm/registry/sources.rb +0 -38
  203. data/sub/avm/lib/avm/registry/with_path/cache.rb +0 -28
  204. data/sub/avm/lib/avm/registry/with_path.rb +0 -44
  205. data/sub/avm/lib/avm/registry.rb +0 -31
  206. data/sub/avm/lib/avm/result.rb +0 -80
  207. data/sub/avm/lib/avm/rspec/launcher_controller.rb +0 -91
  208. data/sub/avm/lib/avm/rspec/setup/launcher.rb +0 -18
  209. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +0 -20
  210. data/sub/avm/lib/avm/rspec/setup.rb +0 -32
  211. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +0 -13
  212. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +0 -28
  213. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +0 -27
  214. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +0 -19
  215. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +0 -9
  216. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +0 -12
  217. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +0 -9
  218. data/sub/avm/lib/avm/rspec/shared_examples/with_launcher.rb +0 -13
  219. data/sub/avm/lib/avm/runner_with/file_replacer.rb +0 -28
  220. data/sub/avm/lib/avm/runner_with/filesystem_renamer.rb +0 -99
  221. data/sub/avm/lib/avm/runner_with/filesystem_traverser.rb +0 -49
  222. data/sub/avm/lib/avm/runners/base.rb +0 -25
  223. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +0 -47
  224. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +0 -79
  225. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +0 -37
  226. data/sub/avm/lib/avm/scms/auto_commit/rules/last.rb +0 -17
  227. data/sub/avm/lib/avm/scms/auto_commit/rules/manual.rb +0 -38
  228. data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +0 -21
  229. data/sub/avm/lib/avm/scms/auto_commit/rules/nth.rb +0 -29
  230. data/sub/avm/lib/avm/scms/auto_commit/rules/unique.rb +0 -19
  231. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +0 -32
  232. data/sub/avm/lib/avm/scms/base/branches.rb +0 -20
  233. data/sub/avm/lib/avm/scms/base/commits.rb +0 -32
  234. data/sub/avm/lib/avm/scms/base/milestones.rb +0 -19
  235. data/sub/avm/lib/avm/scms/base/remotes.rb +0 -20
  236. data/sub/avm/lib/avm/scms/base.rb +0 -59
  237. data/sub/avm/lib/avm/scms/branch.rb +0 -24
  238. data/sub/avm/lib/avm/scms/changed_file.rb +0 -46
  239. data/sub/avm/lib/avm/scms/commit.rb +0 -64
  240. data/sub/avm/lib/avm/scms/commit_info.rb +0 -37
  241. data/sub/avm/lib/avm/scms/inflector.rb +0 -22
  242. data/sub/avm/lib/avm/scms/interval.rb +0 -16
  243. data/sub/avm/lib/avm/scms/null/commit.rb +0 -11
  244. data/sub/avm/lib/avm/scms/null.rb +0 -16
  245. data/sub/avm/lib/avm/scms/remote.rb +0 -9
  246. data/sub/avm/lib/avm/self/docker_image.rb +0 -11
  247. data/sub/avm/lib/avm/self/instance/entry_keys.rb +0 -12
  248. data/sub/avm/lib/avm/self/instance.rb +0 -27
  249. data/sub/avm/lib/avm/source_generators/base.rb +0 -69
  250. data/sub/avm/lib/avm/source_generators/option.rb +0 -11
  251. data/sub/avm/lib/avm/source_generators/option_list.rb +0 -29
  252. data/sub/avm/lib/avm/source_generators/runner.rb +0 -55
  253. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +0 -29
  254. data/sub/avm/lib/avm/sources/base/application.rb +0 -32
  255. data/sub/avm/lib/avm/sources/base/configuration.rb +0 -89
  256. data/sub/avm/lib/avm/sources/base/instance.rb +0 -13
  257. data/sub/avm/lib/avm/sources/base/locale.rb +0 -30
  258. data/sub/avm/lib/avm/sources/base/organizational.rb +0 -30
  259. data/sub/avm/lib/avm/sources/base/parent.rb +0 -26
  260. data/sub/avm/lib/avm/sources/base/stereotype.rb +0 -16
  261. data/sub/avm/lib/avm/sources/base/sub/remove.rb +0 -36
  262. data/sub/avm/lib/avm/sources/base/sub.rb +0 -23
  263. data/sub/avm/lib/avm/sources/base/subs.rb +0 -63
  264. data/sub/avm/lib/avm/sources/base/subs_paths.rb +0 -30
  265. data/sub/avm/lib/avm/sources/base/testing.rb +0 -67
  266. data/sub/avm/lib/avm/sources/base/update.rb +0 -37
  267. data/sub/avm/lib/avm/sources/base/update_sub.rb +0 -55
  268. data/sub/avm/lib/avm/sources/base/update_subs.rb +0 -17
  269. data/sub/avm/lib/avm/sources/base/version_bump.rb +0 -26
  270. data/sub/avm/lib/avm/sources/base.rb +0 -56
  271. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +0 -26
  272. data/sub/avm/lib/avm/sources/configuration.rb +0 -57
  273. data/sub/avm/lib/avm/sources/issues/deliver.rb +0 -51
  274. data/sub/avm/lib/avm/sources/runner.rb +0 -38
  275. data/sub/avm/lib/avm/sources/tests/builder.rb +0 -91
  276. data/sub/avm/lib/avm/sources/tests/performer.rb +0 -32
  277. data/sub/avm/lib/avm/sources/tests/result.rb +0 -13
  278. data/sub/avm/lib/avm/sources/tests/single.rb +0 -71
  279. data/sub/avm/lib/avm/sources/update_error.rb +0 -8
  280. data/sub/avm/lib/avm/sync.rb +0 -90
  281. data/sub/avm/lib/avm/version.rb +0 -5
  282. data/sub/avm/lib/avm/version_number.rb +0 -45
  283. data/sub/avm/lib/avm/with/application_stereotype.rb +0 -29
  284. data/sub/avm/lib/avm/with/extra_subcommands.rb +0 -41
  285. data/sub/avm/lib/avm.rb +0 -18
  286. data/sub/avm/locale/en.yml +0 -6
  287. data/sub/avm/locale/pt-BR.yml +0 -6
  288. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +0 -29
  289. data/sub/avm/spec/lib/avm/applications/base/entries_spec_files/config.yml +0 -12
  290. data/sub/avm/spec/lib/avm/applications/base_spec.rb +0 -21
  291. data/sub/avm/spec/lib/avm/applications/base_spec_fixture.yml +0 -3
  292. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +0 -9
  293. data/sub/avm/spec/lib/avm/instances/base/entries_spec.rb +0 -78
  294. data/sub/avm/spec/lib/avm/instances/base/entries_spec_files/config.yml +0 -50
  295. data/sub/avm/spec/lib/avm/instances/base_spec.rb +0 -29
  296. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +0 -98
  297. data/sub/avm/spec/lib/avm/launcher/context_spec.yml +0 -5
  298. data/sub/avm/spec/lib/avm/launcher/context_spec_files/config.yml +0 -9
  299. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +0 -39
  300. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/config.yml +0 -5
  301. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/settings.yaml +0 -5
  302. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +0 -26
  303. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +0 -20
  304. data/sub/avm/spec/lib/avm/scms/base_spec.rb +0 -5
  305. data/sub/avm/spec/lib/avm/sources/base_spec.rb +0 -5
  306. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +0 -7
  307. data/sub/avm/spec/spec_helper/launcher_context/settings.yml +0 -6
  308. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/avm-tools.gemspec +0 -29
  309. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools/version.rb +0 -7
  310. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools.rb +0 -6
  311. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +0 -5
  312. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb +0 -3
  313. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +0 -16
  314. data/sub/avm/template/avm/rspec/launcher_controller/settings.yml +0 -1
  315. data/sub/avm/template/avm/self/docker_image/Dockerfile +0 -17
  316. data/sub/avm/template/avm/self/docker_image/entrypoint.sh +0 -12
  317. /data/sub/{avm → eac_ruby_gem_support}/Gemfile +0 -0
  318. /data/sub/{avm/spec/meta/rubocop_spec.rb → eac_ruby_gem_support/spec/meta/rubocop_check_spec.rb} +0 -0
@@ -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,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'tmpdir'
4
+
5
+ module EacRubyGemSupport
6
+ module Rspec
7
+ module Setup
8
+ extend ::ActiveSupport::Concern
9
+ include ::EacRubyGemSupport::Rspec::Specs::Rubocop
10
+
11
+ SETUPS = %w[load_path example_persistence filesystem_helper shared_examples].freeze
12
+
13
+ def self.extended(setup_obj)
14
+ SETUPS.each { |s| setup_obj.send("setup_#{s}") }
15
+ end
16
+
17
+ def setup_filesystem_helper
18
+ rspec_config.include ::EacRubyGemSupport::Rspec::Helpers::Filesystem
19
+ rspec_config.include ::EacRubyGemSupport::Rspec::Helpers::Utils
20
+ rspec_config.after(:each) { purge_temp_files }
21
+ end
22
+
23
+ def setup_load_path
24
+ $LOAD_PATH.push app_root_path.join('lib').to_path
25
+ end
26
+
27
+ def setup_example_persistence
28
+ rspec_config.example_status_persistence_file_path = example_persistence_path.to_path
29
+ end
30
+
31
+ def setup_shared_examples
32
+ require 'eac_ruby_gem_support/rspec/shared_examples/spec_paths'
33
+ require 'eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures'
34
+ end
35
+
36
+ # @return [Pathname]
37
+ def example_persistence_path
38
+ root_tmp.join('example_status_persistence')
39
+ end
40
+
41
+ # The root directory for temporary files.
42
+ # @return [Pathname]
43
+ def root_tmp
44
+ r = ::Pathname.new(::Dir.tmpdir)
45
+ .join("#{app_root_path.expand_path.to_path.variableize}_specs_tmp")
46
+ r.mkpath unless r.exist?
47
+ r
48
+ end
49
+ end
50
+ end
51
+ 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,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rspec'
4
+ require 'rubocop'
5
+
6
+ module EacRubyGemSupport
7
+ module Rspec
8
+ module Specs
9
+ module Rubocop
10
+ def describe_rubocop # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
11
+ this = self
12
+ ::RSpec.describe ::RuboCop do
13
+ before do
14
+ ::RuboCop::ConfigLoader.ignore_parent_exclusion = true
15
+ end
16
+
17
+ let(:root_path) { this.app_root_path }
18
+ let(:config_store) do
19
+ r = ::RuboCop::ConfigStore.new
20
+ r.for(root_path)
21
+ r
22
+ end
23
+ let(:runner) { ::RuboCop::Runner.new({}, config_store) }
24
+
25
+ it 'rubocop return ok' do
26
+ expect(::Dir.chdir(root_path) { runner.run([]) }).to eq(true)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ 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.13.0'
5
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils'
4
+ EacRubyUtils::RootModuleSetup.perform __FILE__ do
5
+ ignore 'rspec/shared_examples/**/*'
6
+ end
7
+
8
+ require 'active_support/ordered_options' # Fix "super_diff" '0.18.0'.
9
+ require 'super_diff'
10
+ require 'super_diff/active_support'
11
+ require 'super_diff/rspec'
12
+
13
+ module EacRubyGemSupport
14
+ 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
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm'
4
- require 'avm/eac_ruby_base1'
5
- require 'avm/git'
3
+ require 'eac_ruby_utils'
6
4
  require 'eac_ruby_gem_support'
7
- EacRubyUtils::Rspec.default_setup_create(File.expand_path('..', __dir__)).stub_avm_contexts
5
+ EacRubyUtils::Rspec.default_setup_create(File.expand_path('..', __dir__))