eac_tools 0.116.0 → 0.117.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 (191) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +17 -17
  3. data/eac_tools.gemspec +2 -2
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/sub/avm/lib/avm/launcher/context/instance_discovery/source_wrapper.rb +4 -5
  6. data/sub/avm/lib/avm/sources/base/update.rb +41 -13
  7. data/sub/avm/lib/avm/sources/change.rb +22 -0
  8. data/sub/avm/lib/avm/version.rb +1 -1
  9. data/sub/avm-eac_ruby_base1/.gitignore +2 -0
  10. data/sub/avm-eac_ruby_base1/.gitrepo +7 -0
  11. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +25 -0
  12. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb +54 -0
  13. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile/dependency.rb +17 -0
  14. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile.rb +32 -0
  15. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/depends_on.rb +22 -0
  16. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/gem_conflict.rb +41 -0
  17. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/in_gemfile.rb +14 -0
  18. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_buffer.rb +73 -0
  19. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_factory.rb +26 -0
  20. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_parser_base.rb +17 -0
  21. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/ruby_requirement.rb +13 -0
  22. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/version_requirement.rb +23 -0
  23. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser.rb +21 -0
  24. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base/file_resource_name.rb +44 -0
  25. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base.rb +19 -0
  26. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/instances/mixin.rb +24 -0
  27. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem/build.rb +120 -0
  28. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem/specification.rb +61 -0
  29. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/local_project_mixin.rb +24 -0
  30. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish/internal_check.rb +70 -0
  31. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish/local_gem.rb +31 -0
  32. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish/remote_gem.rb +45 -0
  33. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish.rb +32 -0
  34. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base.rb +32 -0
  35. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/preferred_version_requirements.rb +40 -0
  36. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec/setup.rb +13 -0
  37. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec/source_generator.rb +20 -0
  38. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/configured.rb +29 -0
  39. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/envvar.rb +15 -0
  40. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/gemfile.rb +39 -0
  41. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop.rb +54 -0
  42. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gem_search_parser.rb +34 -0
  43. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec/add_or_replace_gem_line.rb +69 -0
  44. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec/dependency.rb +28 -0
  45. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb +57 -0
  46. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/providers/base.rb +46 -0
  47. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/providers/nexus.rb +29 -0
  48. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/providers/rubygems_org.rb +37 -0
  49. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/remote.rb +31 -0
  50. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/version_file.rb +43 -0
  51. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base/lib_rename.rb +74 -0
  52. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base/rubocop.rb +27 -0
  53. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base.rb +14 -0
  54. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners.rb +8 -0
  55. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/dependencies.rb +59 -0
  56. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/gemfile_lock.rb +23 -0
  57. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/gemspec.rb +81 -0
  58. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/options.rb +32 -0
  59. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/root_module.rb +46 -0
  60. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/version_builder.rb +58 -0
  61. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base.rb +48 -0
  62. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundle_command.rb +35 -0
  63. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb +62 -0
  64. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/gem_provider.rb +46 -0
  65. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rake.rb +39 -0
  66. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubocop.rb +23 -0
  67. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubocop_command.rb +70 -0
  68. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubygems.rb +50 -0
  69. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/update.rb +30 -0
  70. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version.rb +30 -0
  71. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version_bump.rb +16 -0
  72. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base.rb +55 -0
  73. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/bundle_update.rb +21 -0
  74. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/gemfile_local/sibling.rb +51 -0
  75. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/gemfile_local.rb +65 -0
  76. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/namespace_replacer.rb +66 -0
  77. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundle.rb +26 -0
  78. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_local.rb +55 -0
  79. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock/git.rb +58 -0
  80. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock.rb +87 -0
  81. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/incompatible.rb +73 -0
  82. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler.rb +16 -0
  83. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/base.rb +57 -0
  84. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/minitest.rb +27 -0
  85. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple/decorated_gem.rb +50 -0
  86. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple/result.rb +29 -0
  87. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple.rb +85 -0
  88. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/rspec.rb +23 -0
  89. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update/changes/bundle_update.rb +28 -0
  90. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update/changes/update_requirements.rb +55 -0
  91. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update/sub_update.rb +57 -0
  92. data/sub/{avm-eac_generic_base0/lib/avm/eac_generic_base0 → avm-eac_ruby_base1/lib/avm/eac_ruby_base1}/version.rb +2 -2
  93. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1.rb +15 -0
  94. data/sub/avm-eac_ruby_base1/locale/en.yml +19 -0
  95. data/sub/avm-eac_ruby_base1/locale/pt-BR.yml +19 -0
  96. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec.rb +5 -0
  97. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/1.source.out +192 -0
  98. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/1.target.yaml +300 -0
  99. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/2.source.out +245 -0
  100. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/2.target.yaml +355 -0
  101. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/3.source.out +0 -0
  102. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/3.target.yaml +305 -0
  103. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec.rb +13 -0
  104. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/Gemfile.source +6 -0
  105. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/Gemfile.target +3 -0
  106. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/ruby_code.rb.source +6 -0
  107. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/ruby_code.rb.target +5 -0
  108. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher/gem/build_spec.rb +43 -0
  109. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher/gem/specification_spec.rb +57 -0
  110. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish_spec.rb +25 -0
  111. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher_stereotypes/base_spec.rb +21 -0
  112. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/preferred_version_requirements_spec.rb +21 -0
  113. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gem_search_parser_spec.rb +5 -0
  114. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gem_search_parser_spec_files/empty.source +1 -0
  115. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gem_search_parser_spec_files/empty.target.yaml +1 -0
  116. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gem_search_parser_spec_files/many_versions.source +1 -0
  117. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gem_search_parser_spec_files/many_versions.target.yaml +123 -0
  118. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec.rb +35 -0
  119. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec_files/changes1.source.yaml +5 -0
  120. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec_files/changes1.target.txt +15 -0
  121. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/gemspec_spec_files/the_gem.gemspec +15 -0
  122. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/version_file_spec.rb +13 -0
  123. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/version_file_spec_files/a_version_file.rb +7 -0
  124. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec.rb +33 -0
  125. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir1/.avm.yml +4 -0
  126. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir1/dir3/Gemfile +5 -0
  127. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir1/dir3/Gemfile.lock +27 -0
  128. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir2/empty.rb +1 -0
  129. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir4/.avm.yml +4 -0
  130. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir4/false_command.rb +4 -0
  131. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec.rb +16 -0
  132. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/.rspec +1 -0
  133. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/.rubocop.yml +3 -0
  134. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/Gemfile +8 -0
  135. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/Gemfile.lock +1 -0
  136. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/_gitignore +2 -0
  137. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/dashed-mygem.gemspec +20 -0
  138. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem/version.rb +7 -0
  139. data/sub/{avm-eac_generic_base0/lib/avm/eac_generic_base0.rb → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem.rb} +2 -4
  140. data/sub/{avm-eac_generic_base0 → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem}/spec/spec_helper.rb +1 -1
  141. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/.rspec +1 -0
  142. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/.rubocop.yml +3 -0
  143. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/Gemfile +8 -0
  144. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/Gemfile.lock +1 -0
  145. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/_gitignore +2 -0
  146. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/lib/mygem/version.rb +5 -0
  147. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/lib/mygem.rb +7 -0
  148. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/mygem.gemspec +20 -0
  149. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/spec/meta/rubocop_spec.rb +3 -0
  150. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/spec/spec_helper.rb +5 -0
  151. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec.rb +28 -0
  152. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Gemfile +5 -0
  153. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Gemfile.lock +19 -0
  154. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Rakefile +14 -0
  155. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/exe/myrunner +5 -0
  156. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem/version.rb +5 -0
  157. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem.rb +7 -0
  158. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/mygem.gemspec +17 -0
  159. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base_spec.rb +13 -0
  160. data/sub/avm-eac_ruby_base1/spec/meta/rubocop_spec.rb +3 -0
  161. data/sub/avm-eac_ruby_base1/spec/spec_helper.rb +5 -0
  162. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/gemspec.template +19 -0
  163. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/root_lib.template +8 -0
  164. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/.gitignore +2 -0
  165. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/.rspec +1 -0
  166. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/.rubocop.yml +3 -0
  167. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/Gemfile +8 -0
  168. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/spec/meta/rubocop_spec.rb +3 -0
  169. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/spec/spec_helper.rb.template +5 -0
  170. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/version.template +5 -0
  171. metadata +173 -35
  172. data/sub/avm-eac_generic_base0/.gitignore +0 -2
  173. data/sub/avm-eac_generic_base0/.gitrepo +0 -7
  174. data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +0 -21
  175. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base/apply.rb +0 -29
  176. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base/file_resource_name_helper.rb +0 -21
  177. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base/match.rb +0 -65
  178. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base.rb +0 -38
  179. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/instances/base.rb +0 -10
  180. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base.rb +0 -40
  181. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/docker/runner.rb +0 -59
  182. data/sub/avm-eac_generic_base0/locale/en.yml +0 -6
  183. data/sub/avm-eac_generic_base0/locale/pt-BR.yml +0 -6
  184. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec.rb +0 -5
  185. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec_files/plain_text.source +0 -3
  186. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec_files/plain_text.target +0 -3
  187. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/sources/base_spec.rb +0 -5
  188. /data/sub/{avm-eac_generic_base0 → avm-eac_ruby_base1}/.rspec +0 -0
  189. /data/sub/{avm-eac_generic_base0 → avm-eac_ruby_base1}/.rubocop.yml +0 -0
  190. /data/sub/{avm-eac_generic_base0 → avm-eac_ruby_base1}/Gemfile +0 -0
  191. /data/sub/{avm-eac_generic_base0/spec → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/spec/meta}/rubocop_spec.rb +0 -0
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ class Rubocop
6
+ require_sub __FILE__, include_modules: true
7
+ enable_speaker
8
+ enable_simple_cache
9
+ common_constructor :base_path, :rubocop_args
10
+ set_callback :initialize, :after do
11
+ @base_path = ::Pathname.new(base_path.to_s) unless base_path.is_a?(::Pathname)
12
+ end
13
+
14
+ def run
15
+ start_banner
16
+ run_rubocop
17
+ end
18
+
19
+ private
20
+
21
+ def cmd(*)
22
+ ::EacRubyUtils::Envs.local.command(*)
23
+ end
24
+
25
+ def rubocop_command_uncached
26
+ %w[env configured gemfile].each do |s|
27
+ cmd = send("#{s}_rubocop_command")
28
+ return cmd if cmd.present?
29
+ end
30
+ cmd('rubocop')
31
+ end
32
+
33
+ def rubocop_command_with_args
34
+ rubocop_command.append(rubocop_args)
35
+ end
36
+
37
+ def rubocop_version_uncached
38
+ ::EacRubyUtils::Ruby.on_clean_environment do
39
+ rubocop_command.append(['--ignore-parent-exclusion', '--version']).execute!.strip
40
+ rescue EacRubyUtils::Envs::ExecutionError
41
+ rubocop_command.append(['--version']).execute!.strip
42
+ end
43
+ end
44
+
45
+ def run_rubocop
46
+ ::EacRubyUtils::Ruby.on_clean_environment { rubocop_command_with_args.system }
47
+ end
48
+
49
+ def start_banner
50
+ infov 'Rubocop version', rubocop_version
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ class GemSearchParser < ::Aranha::Parsers::Base
7
+ GEM_STRUCT = ::Struct.new(:name, :versions)
8
+ LINE_PARSER = /\A\s*(\S+)\s*\(([^)]+)\)\s*\z/.to_parser do |m|
9
+ GEM_STRUCT.new(m[1], m[2].split(',').map(&:strip).reject(&:blank?))
10
+ end
11
+
12
+ # @return [Hash<String, Enumerable<String>]
13
+ def data
14
+ r = {}
15
+ content.each_line do |line|
16
+ parse_line(line).then do |line_parsed|
17
+ next if line.blank?
18
+
19
+ r[line_parsed.name] = line_parsed.versions
20
+ end
21
+ end
22
+ r
23
+ end
24
+
25
+ # @param line [String]
26
+ # @return [GEM_STRUCT]
27
+ def parse_line(line)
28
+ stripped_line = line.to_s.strip
29
+ stripped_line.if_present(nil) { |v| LINE_PARSER.parse!(v) }
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ class Gemspec
7
+ class AddOrReplaceGemLine
8
+ enable_method_class
9
+ common_constructor :sender, :gem_name, :gem_specs, :dependency_type do
10
+ self.dependency_type = ::Avm::EacRubyBase1::Rubygems::Gemspec::Dependency.lists.type
11
+ .value_validate!(dependency_type)
12
+ end
13
+ delegate :lines, to: :sender
14
+
15
+ DEPENDENCY_PREFIX = ' s.add%<dependency_type>s_dependency \'%<gem_name>s\''
16
+
17
+ # @return [Integer]
18
+ def existing_gem_line_index
19
+ lines.index do |line|
20
+ ::Avm::EacRubyBase1::Rubygems::Gemspec::DEPENDENCY_LINE_PARSER.parse(line)
21
+ .if_present(&:first) == gem_name
22
+ end
23
+ end
24
+
25
+ def result
26
+ if existing_gem_line_index.present?
27
+ replace_line
28
+ else
29
+ add_line
30
+ end
31
+ end
32
+
33
+ def add_line
34
+ lines.insert(add_line_index, new_gem_line)
35
+ end
36
+
37
+ def add_line_index
38
+ (gems_lines_start_index..(lines.count - 1)).each do |e|
39
+ return e if new_gem_line < lines[e]
40
+ end
41
+ lines.count
42
+ end
43
+
44
+ # @return [Integer]
45
+ def gems_lines_start_index
46
+ existing_gem_line_index || (lines.count - 1)
47
+ end
48
+
49
+ def new_gem_line
50
+ ([gem_line_prefix] + quoted_gem_specs).join(', ')
51
+ end
52
+
53
+ # @return [String]
54
+ def gem_line_prefix
55
+ format(DEPENDENCY_PREFIX, { dependency_type: dependency_type, gem_name: gem_name })
56
+ end
57
+
58
+ def replace_line
59
+ lines[existing_gem_line_index] = new_gem_line
60
+ end
61
+
62
+ def quoted_gem_specs
63
+ gem_specs.map { |gem_spec| "'#{gem_spec}'" }
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ class Gemspec
7
+ class Dependency
8
+ enable_listable
9
+ lists.add_string :type, '' => :common, '_development' => :development,
10
+ '_runtime' => :runtime
11
+
12
+ common_constructor :gemspec, :gem_name, :type do
13
+ self.type = self.class.lists.type.value_validate!(type)
14
+ end
15
+
16
+ # @return [String]
17
+ def to_s
18
+ "#{self.class}[#{gem_name}, #{type}]"
19
+ end
20
+
21
+ def version_specs=(version_specs)
22
+ gemspec.add_or_replace_gem_line(gem_name, version_specs, type)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ class Gemspec
7
+ require_sub __FILE__, require_mode: :kernel
8
+ enable_simple_cache
9
+
10
+ DEPENDENCY_LINE_PARSER = /s\.add([a-zA-Z0-9_]*)_dependency\s*'(\S+)'/
11
+ .to_parser { |m| [m[2], m[1]] }
12
+
13
+ class << self
14
+ def from_file(path)
15
+ new(path.read.each_line.map(&:rstrip))
16
+ end
17
+ end
18
+
19
+ common_constructor :lines
20
+
21
+ # @param gem_name [String]
22
+ # @return [Avm::EacRubyBase1::Bundler::Gemfile::Dependency]
23
+ def dependency(gem_name)
24
+ dependencies_hash.fetch(gem_name)
25
+ end
26
+
27
+ # @return [Array<Avm::EacRubyBase1::Bundler::Gemfile::Dependency>]
28
+ def dependencies
29
+ dependencies_hash.values
30
+ end
31
+
32
+ def write(path)
33
+ path.to_pathname.write(to_text)
34
+ end
35
+
36
+ def to_text
37
+ lines.map { |line| "#{line}\n" }.join
38
+ end
39
+
40
+ protected
41
+
42
+ # @param gem_name [String]
43
+ # @param type [String] Avm::EacRubyBase1::Rubygems::Gemspec::Dependency::TYPE_*
44
+ # @return [Avm::EacRubyBase1::Bundler::Gemfile::Dependency]
45
+ def create_dependency(gem_name, type)
46
+ ::Avm::EacRubyBase1::Rubygems::Gemspec::Dependency.new(self, gem_name, type)
47
+ end
48
+
49
+ # @return [Hash<String, Avm::EacRubyBase1::Bundler::Gemfile::Dependency>]
50
+ def dependencies_hash_uncached
51
+ lines.lazy.map { |line| DEPENDENCY_LINE_PARSER.parse(line) }.compact_blank
52
+ .map { |dependency_args| create_dependency(*dependency_args) }.index_by(&:gem_name)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ module Providers
7
+ class Base
8
+ acts_as_abstract
9
+
10
+ common_constructor :root_http_url do
11
+ self.root_http_url = root_http_url.to_uri
12
+ root_http_url.assert_argument(::Addressable::URI, 'root_http_url')
13
+ end
14
+
15
+ # @param gem_name [String]
16
+ # @return [Enumerable<Hash>]
17
+ def gem_versions(gem_name)
18
+ raise_abstract __method__, gem_name
19
+ end
20
+
21
+ # @param gem_package_path [Pathname]
22
+ # @return [Boolean]
23
+ def push_gem(gem_package_path)
24
+ command_args = push_gem_command_args(gem_package_path)
25
+ command_args = %w[echo] + command_args + %w[(Dry-run)] unless
26
+ ::Avm::Launcher::Context.current.publish_options[:confirm]
27
+ ::EacRubyUtils::Ruby.on_clean_environment do
28
+ EacRubyUtils::Envs.local.command(*command_args).system
29
+ end
30
+ end
31
+
32
+ # @param gem_package_path [Pathname]
33
+ # @return [Enumerable<String>]
34
+ def push_gem_command_args(gem_package_path)
35
+ raise_abstract __method__, gem_package_path
36
+ end
37
+
38
+ # @return [String]
39
+ def to_s
40
+ "#{self.class.name.demodulize}[#{root_http_url}]"
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ module Providers
7
+ class Nexus < ::Avm::EacRubyBase1::Rubygems::Providers::Base
8
+ # @return [Enumerable<String>]
9
+ def gem_versions(gem_name)
10
+ search_result = ::Avm::EacRubyBase1::Rubygems::GemSearchParser.from_string(
11
+ EacRubyUtils::Envs.local.command(
12
+ 'gem', 'search', '--quiet', '--exact', '--all',
13
+ '--remote', '--clear-sources', '--source', root_http_url, gem_name
14
+ ).execute!
15
+ ).data
16
+ (search_result.key?(gem_name) ? search_result.fetch(gem_name) : [])
17
+ .map { |e| { 'number' => e } }
18
+ end
19
+
20
+ # @param gem_package_path [Pathname]
21
+ # @return [Enumerable<String>]
22
+ def push_gem_command_args(gem_package_path)
23
+ ['gem', 'nexus', '--clear-repo', '--url', root_http_url, gem_package_path]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ module Providers
7
+ class RubygemsOrg < ::Avm::EacRubyBase1::Rubygems::Providers::Base
8
+ DEFAULT_ROOT_HTTP_URL = 'https://rubygems.org'.to_uri
9
+
10
+ # @param root_http_url [Pathname]
11
+ def initialize(root_http_url = DEFAULT_ROOT_HTTP_URL)
12
+ super
13
+ end
14
+
15
+ # @return [Enumerable<Hash>]
16
+ def gem_versions(gem_name)
17
+ ::EacEnvs::Http::Request.new
18
+ .url(root_http_url + "/api/v1/versions/#{gem_name}.json")
19
+ .response.body_data_or_raise
20
+ rescue EacEnvs::Http::Response => e
21
+ e.status == 404 ? [] : raise(e)
22
+ end
23
+
24
+ # @param gem_package_path [Pathname]
25
+ # @return [Enumerable<String>]
26
+ def push_gem_command_args(gem_package_path)
27
+ command = ['gem', 'push', gem_package_path]
28
+ unless ::Avm::Launcher::Context.current.publish_options[:confirm]
29
+ command = %w[echo] + command + %w[(Dry-run)]
30
+ end
31
+ command
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ class Remote
7
+ enable_simple_cache
8
+ common_constructor :name, :provider, default: [nil] do
9
+ self.provider ||= ::Avm::EacRubyBase1::Rubygems::Providers::RubygemsOrg.new
10
+ end
11
+
12
+ # @return [Gem::Version, nil]
13
+ def maximum_number
14
+ numbers.max.if_present { |v| ::Gem::Version.new(v) }
15
+ end
16
+
17
+ # @return [Array<Gem::Version>]
18
+ def numbers
19
+ versions.map { |v| ::Gem::Version.new(v.fetch('number')) }
20
+ end
21
+
22
+ protected
23
+
24
+ # @return [Array<String>]
25
+ def versions_uncached
26
+ provider.gem_versions(name)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Rubygems
6
+ class VersionFile
7
+ common_constructor :path
8
+
9
+ VERSION_LINE_PATTERN = /\A(\s*)VERSION\s*=\s*['"]([^'"]+)['"](\s*)\z/
10
+
11
+ def value
12
+ return nil unless path.file?
13
+
14
+ path.read.each_line.lazy.map { |line| line_value(line) }.find { |v| v }
15
+ end
16
+
17
+ def value=(new_value)
18
+ path.write(new_value_content(new_value))
19
+ end
20
+
21
+ private
22
+
23
+ # @return Version found in line, nil otherwise.
24
+ def line_value(line)
25
+ VERSION_LINE_PATTERN.if_match(line.rstrip, false) { |m| ::Gem::Version.new(m[2]) }
26
+ end
27
+
28
+ def new_value_content(new_value)
29
+ path.read.each_line
30
+ .map { |line| new_value_line(line, new_value) }
31
+ .join
32
+ end
33
+
34
+ def new_value_line(line, new_value)
35
+ m = VERSION_LINE_PATTERN.match(line)
36
+ return line unless m
37
+
38
+ "#{m[1]}VERSION = '#{new_value}'#{m[3]}"
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Runners
6
+ class Base
7
+ class LibRename
8
+ runner_with :help, :file_replacer do
9
+ desc 'Rename Ruby modules classes Ruby.'
10
+ arg_opt '-f', '--from', 'Rename "from".'
11
+ arg_opt '-t', '--to', 'Rename "to".'
12
+ end
13
+
14
+ def run
15
+ start_banner
16
+ validate
17
+ replacements_banner
18
+ run_filesystem_traverser
19
+ success 'Done!'
20
+ end
21
+
22
+ def validate
23
+ %w[from to].each do |opt|
24
+ fatal_error "No \"#{opt}\" option" if send(opt).blank?
25
+ end
26
+ end
27
+
28
+ def start_banner
29
+ infov 'From', from
30
+ infov 'To', to
31
+ end
32
+
33
+ private
34
+
35
+ def namespace_replacer_uncached
36
+ ::Avm::EacRubyBase1::Sources::NamespaceReplacer.new(from, to)
37
+ end
38
+
39
+ def text_replacer
40
+ @text_replacer ||= super.gsub(from, to).gsub(from_path, to_path)
41
+ .gsub(namespace_replacer.from_result, namespace_replacer.to_result)
42
+ end
43
+
44
+ def replace_file?(file)
45
+ file.extname == '.rb'
46
+ end
47
+
48
+ def replacements_banner
49
+ infov 'Replacements', text_replacer.replacements.count
50
+ text_replacer.replacements.each do |rep|
51
+ infov ' * ', rep
52
+ end
53
+ end
54
+
55
+ def from
56
+ parsed.from.to_s
57
+ end
58
+
59
+ def to
60
+ parsed.to.to_s
61
+ end
62
+
63
+ def from_path
64
+ from.underscore
65
+ end
66
+
67
+ def to_path
68
+ to.underscore
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Runners
6
+ class Base
7
+ class Rubocop
8
+ runner_with :help do
9
+ desc 'Runs Rubocop (https://rubygems.org/gems/rubocop).'
10
+ arg_opt '-C', 'Caminho para executar o Rubocop [default: .].'
11
+ pos_arg :rubocop_args, repeat: true, optional: true
12
+ end
13
+
14
+ def run
15
+ ::Avm::EacRubyBase1::Rubocop.new(path, parsed.rubocop_args).run
16
+ end
17
+
18
+ private
19
+
20
+ def path
21
+ ::Pathname.new(parsed.c || '.').expand_path
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Runners
6
+ class Base < ::Avm::Runners::Base
7
+ runner_with :help, :subcommands do
8
+ desc 'Ruby utilities for AVM.'
9
+ subcommands
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Runners
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module SourceGenerators
6
+ class Base < ::Avm::SourceGenerators::Base
7
+ module Dependencies
8
+ common_concern
9
+
10
+ COMMON_DEPENDENCY_GEMS = %w[eac_ruby_utils].freeze
11
+ DEVELOPMENT_DEPENDENCY_GEMS = %w[eac_ruby_gem_support].freeze
12
+
13
+ module ClassMethods
14
+ # @return [Array<String>]
15
+ def common_dependency_gems
16
+ COMMON_DEPENDENCY_GEMS
17
+ end
18
+
19
+ # @return [Array<String>]
20
+ def development_dependency_gems
21
+ DEVELOPMENT_DEPENDENCY_GEMS
22
+ end
23
+ end
24
+
25
+ # @return [String]
26
+ def common_dependencies
27
+ dependencies_section(:common_dependency_gems, '')
28
+ end
29
+
30
+ def dependency_version(gem_name)
31
+ ::Avm::EacRubyBase1::SourceGenerators::Base::VersionBuilder.new(gem_name, options).to_s
32
+ end
33
+
34
+ # @return [String]
35
+ def development_dependencies
36
+ dependencies_section(:development_dependency_gems, 'development_')
37
+ end
38
+
39
+ protected
40
+
41
+ # @param gem_name [String]
42
+ # @param prefix [String]
43
+ # @return [String]
44
+ def dependency_line(gem_name, prefix)
45
+ "#{IDENT}s.add_#{prefix}dependency '#{gem_name}', #{dependency_version(gem_name)}\n"
46
+ end
47
+
48
+ # @param setting_key [Symbol]
49
+ # @param prefix [String]
50
+ # @return [String]
51
+ def dependencies_section(gems_method, prefix)
52
+ self.class.send(gems_method).sort.map { |gem_name| dependency_line(gem_name, prefix) }
53
+ .join.rstrip
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module SourceGenerators
6
+ class Base < ::Avm::SourceGenerators::Base
7
+ module GemfileLock
8
+ def generate_gemfile_lock
9
+ return unless generate_gemfile_lock?
10
+
11
+ self_gem.bundle('install').chdir_root.execute!
12
+ end
13
+
14
+ # @return [Boolean]
15
+ def generate_gemfile_lock?
16
+ options[::Avm::EacRubyBase1::SourceGenerators::Base::Options::GEMFILE_LOCK_OPTION]
17
+ .to_bool
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end