eac_tools 0.89.0 → 0.90.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (384) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +32 -43
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +22 -0
  5. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb +56 -0
  6. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile/dependency.rb +19 -0
  7. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile.rb +34 -0
  8. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/depends_on.rb +25 -0
  9. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/gem_conflict.rb +44 -0
  10. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/in_gemfile.rb +17 -0
  11. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_buffer.rb +77 -0
  12. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_factory.rb +33 -0
  13. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_parser_base.rb +19 -0
  14. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/ruby_requirement.rb +16 -0
  15. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/version_requirement.rb +26 -0
  16. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser.rb +25 -0
  17. data/sub/{avm/lib/avm/entries/jobs.rb → avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler.rb} +2 -2
  18. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base/file_resource_name.rb +47 -0
  19. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base.rb +22 -0
  20. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats.rb +11 -0
  21. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/instances/mixin.rb +19 -0
  22. data/sub/{avm/lib/avm/launcher → avm-eac_ruby_base1/lib/avm/eac_ruby_base1}/instances.rb +1 -1
  23. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem/build.rb +126 -0
  24. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem/specification.rb +63 -0
  25. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher/gem.rb +13 -0
  26. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher.rb +11 -0
  27. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/local_project_mixin.rb +28 -0
  28. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish.rb +130 -0
  29. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base.rb +37 -0
  30. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes.rb +11 -0
  31. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/preferred_version_requirements.rb +43 -0
  32. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec/setup.rb +16 -0
  33. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec/source_generator.rb +22 -0
  34. data/sub/{avm/lib/avm/entries/auto_values.rb → avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rspec.rb} +2 -2
  35. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/configured.rb +31 -0
  36. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/envvar.rb +17 -0
  37. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/gemfile.rb +42 -0
  38. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop.rb +55 -0
  39. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec/add_or_replace_gem_line.rb +62 -0
  40. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec/dependency.rb +19 -0
  41. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb +42 -0
  42. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/version_file.rb +45 -0
  43. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems.rb +11 -0
  44. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base/lib_rename.rb +77 -0
  45. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base/rubocop.rb +30 -0
  46. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base.rb +18 -0
  47. data/sub/{avm/lib/avm/instances/data.rb → avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners.rb} +2 -2
  48. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/dependencies.rb +27 -0
  49. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/gemfile_lock.rb +27 -0
  50. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/options.rb +30 -0
  51. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/version_builder.rb +52 -0
  52. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base.rb +111 -0
  53. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators.rb +11 -0
  54. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundle_command.rb +39 -0
  55. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb +68 -0
  56. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rake.rb +42 -0
  57. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubocop.rb +28 -0
  58. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubocop_command.rb +73 -0
  59. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubygems.rb +43 -0
  60. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/update.rb +25 -0
  61. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version.rb +31 -0
  62. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version_bump.rb +19 -0
  63. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base.rb +61 -0
  64. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/bundle_update.rb +23 -0
  65. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/gemfile_local/sibling.rb +53 -0
  66. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/gemfile_local.rb +69 -0
  67. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/namespace_replacer.rb +55 -0
  68. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundle.rb +29 -0
  69. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_local.rb +58 -0
  70. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock/git.rb +60 -0
  71. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock.rb +89 -0
  72. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/incompatible.rb +76 -0
  73. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler.rb +19 -0
  74. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/update_dependencies_requirements.rb +68 -0
  75. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners.rb +13 -0
  76. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/base.rb +59 -0
  77. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/minitest.rb +29 -0
  78. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple/decorated_gem.rb +52 -0
  79. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple/result.rb +29 -0
  80. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple.rb +90 -0
  81. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/rspec.rb +25 -0
  82. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests.rb +13 -0
  83. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update/sub_update.rb +59 -0
  84. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb +64 -0
  85. data/sub/{avm/lib/avm/launcher/errors.rb → avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources.rb} +2 -2
  86. data/sub/{avm/spec/dummy/avm-tools_stub/lib/avm/tools → avm-eac_ruby_base1/lib/avm/eac_ruby_base1}/version.rb +2 -2
  87. data/sub/{avm/lib/avm/applications.rb → avm-eac_ruby_base1/lib/avm/eac_ruby_base1.rb} +1 -1
  88. data/sub/avm-eac_ruby_base1/locale/en.yml +9 -0
  89. data/sub/avm-eac_ruby_base1/locale/pt-BR.yml +9 -0
  90. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec.rb +7 -0
  91. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/1.source.out +192 -0
  92. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/1.target.yaml +300 -0
  93. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/2.source.out +245 -0
  94. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/2.target.yaml +355 -0
  95. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/3.source.out +0 -0
  96. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/3.target.yaml +305 -0
  97. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec.rb +15 -0
  98. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/Gemfile.source +6 -0
  99. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/Gemfile.target +3 -0
  100. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/ruby_code.rb.source +6 -0
  101. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files/ruby_code.rb.target +5 -0
  102. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher/gem/build_spec.rb +46 -0
  103. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher/gem/specification_spec.rb +49 -0
  104. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish_spec.rb +29 -0
  105. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/launcher_stereotypes/base_spec.rb +23 -0
  106. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/preferred_version_requirements_spec.rb +23 -0
  107. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/version_file_spec.rb +14 -0
  108. data/sub/{avm/spec/dummy/avm-tools_stub/lib/avm/tools.rb → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/version_file_spec_files/a_version_file.rb} +1 -0
  109. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec.rb +36 -0
  110. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir1/dir3/Gemfile +5 -0
  111. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir1/dir3/Gemfile.lock +27 -0
  112. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir2/empty.rb +1 -0
  113. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/runners/base/rubocop_spec_files/dir4/false_command.rb +4 -0
  114. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec.rb +19 -0
  115. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/Gemfile +8 -0
  116. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/Gemfile.lock +1 -0
  117. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/_gitignore +2 -0
  118. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/dashed-mygem.gemspec +19 -0
  119. 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
  120. data/sub/{avm/lib/avm/rspec.rb → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem.rb} +2 -2
  121. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem/spec/spec_helper.rb +4 -0
  122. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/Gemfile +8 -0
  123. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/Gemfile.lock +1 -0
  124. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/_gitignore +2 -0
  125. data/sub/{avm/lib/avm → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/lib/mygem}/version.rb +2 -2
  126. data/sub/{avm/lib/avm.rb → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/lib/mygem.rb} +1 -1
  127. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/mygem.gemspec +19 -0
  128. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/spec/rubocop_spec.rb +3 -0
  129. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/mygem/spec/spec_helper.rb +4 -0
  130. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec.rb +30 -0
  131. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Gemfile +5 -0
  132. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Gemfile.lock +19 -0
  133. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Rakefile +14 -0
  134. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/exe/myrunner +5 -0
  135. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem/version.rb +5 -0
  136. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem.rb +5 -0
  137. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/mygem.gemspec +17 -0
  138. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base_spec.rb +16 -0
  139. data/sub/avm-eac_ruby_base1/spec/rubocop_spec.rb +3 -0
  140. data/sub/{avm → avm-eac_ruby_base1}/spec/spec_helper.rb +0 -1
  141. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/gemspec.template +19 -0
  142. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/root_lib.template +7 -0
  143. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/Gemfile +8 -0
  144. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/spec/rubocop_spec.rb +3 -0
  145. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/static/spec/spec_helper.rb +4 -0
  146. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/version.template +5 -0
  147. metadata +151 -255
  148. data/sub/avm/avm.gemspec +0 -28
  149. data/sub/avm/lib/avm/application_scms/base.rb +0 -39
  150. data/sub/avm/lib/avm/application_scms.rb +0 -9
  151. data/sub/avm/lib/avm/application_stereotypes/base.rb +0 -31
  152. data/sub/avm/lib/avm/application_stereotypes.rb +0 -9
  153. data/sub/avm/lib/avm/applications/base/auto_local_source_path.rb +0 -24
  154. data/sub/avm/lib/avm/applications/base/local_instance.rb +0 -31
  155. data/sub/avm/lib/avm/applications/base/local_source.rb +0 -35
  156. data/sub/avm/lib/avm/applications/base/naming.rb +0 -28
  157. data/sub/avm/lib/avm/applications/base/organization.rb +0 -29
  158. data/sub/avm/lib/avm/applications/base/publishing.rb +0 -43
  159. data/sub/avm/lib/avm/applications/base/scm.rb +0 -27
  160. data/sub/avm/lib/avm/applications/base/stereotype.rb +0 -31
  161. data/sub/avm/lib/avm/applications/base.rb +0 -37
  162. data/sub/avm/lib/avm/data/callbacks.rb +0 -37
  163. data/sub/avm/lib/avm/data/clearer.rb +0 -20
  164. data/sub/avm/lib/avm/data/dumper.rb +0 -142
  165. data/sub/avm/lib/avm/data/loader.rb +0 -28
  166. data/sub/avm/lib/avm/data/package/base_performer.rb +0 -38
  167. data/sub/avm/lib/avm/data/package/build_directory.rb +0 -28
  168. data/sub/avm/lib/avm/data/package/clear.rb +0 -22
  169. data/sub/avm/lib/avm/data/package/dump.rb +0 -45
  170. data/sub/avm/lib/avm/data/package/load.rb +0 -36
  171. data/sub/avm/lib/avm/data/package.rb +0 -67
  172. data/sub/avm/lib/avm/data/performer.rb +0 -49
  173. data/sub/avm/lib/avm/data/rotate.rb +0 -107
  174. data/sub/avm/lib/avm/data/unit.rb +0 -49
  175. data/sub/avm/lib/avm/data/unit_with_commands.rb +0 -52
  176. data/sub/avm/lib/avm/docker/container.rb +0 -50
  177. data/sub/avm/lib/avm/docker/image.rb +0 -76
  178. data/sub/avm/lib/avm/docker/runner.rb +0 -121
  179. data/sub/avm/lib/avm/docker.rb +0 -9
  180. data/sub/avm/lib/avm/entries/auto_values/entry.rb +0 -39
  181. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +0 -24
  182. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +0 -46
  183. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +0 -28
  184. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +0 -39
  185. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +0 -31
  186. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +0 -44
  187. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +0 -42
  188. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +0 -63
  189. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +0 -19
  190. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +0 -28
  191. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +0 -25
  192. data/sub/avm/lib/avm/entries/base.rb +0 -57
  193. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +0 -23
  194. data/sub/avm/lib/avm/entries/entry.rb +0 -70
  195. data/sub/avm/lib/avm/entries/jobs/base.rb +0 -62
  196. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +0 -50
  197. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +0 -15
  198. data/sub/avm/lib/avm/entries/jobs/with_variables_source.rb +0 -15
  199. data/sub/avm/lib/avm/entries/keys_constants_set.rb +0 -43
  200. data/sub/avm/lib/avm/entries/uri_builder.rb +0 -91
  201. data/sub/avm/lib/avm/entries.rb +0 -9
  202. data/sub/avm/lib/avm/executables.rb +0 -24
  203. data/sub/avm/lib/avm/file_formats/base.rb +0 -35
  204. data/sub/avm/lib/avm/file_formats/file_result.rb +0 -13
  205. data/sub/avm/lib/avm/file_formats/search_formatter.rb +0 -87
  206. data/sub/avm/lib/avm/file_formats/unknown.rb +0 -18
  207. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +0 -72
  208. data/sub/avm/lib/avm/file_formats.rb +0 -9
  209. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +0 -25
  210. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +0 -62
  211. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +0 -35
  212. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +0 -15
  213. data/sub/avm/lib/avm/instances/base/auto_values.rb +0 -14
  214. data/sub/avm/lib/avm/instances/base/dockerizable.rb +0 -45
  215. data/sub/avm/lib/avm/instances/base/entry_keys.rb +0 -27
  216. data/sub/avm/lib/avm/instances/base/install.rb +0 -31
  217. data/sub/avm/lib/avm/instances/base/processes.rb +0 -27
  218. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +0 -25
  219. data/sub/avm/lib/avm/instances/base/web.rb +0 -16
  220. data/sub/avm/lib/avm/instances/base.rb +0 -71
  221. data/sub/avm/lib/avm/instances/data/files_unit.rb +0 -59
  222. data/sub/avm/lib/avm/instances/data/package.rb +0 -27
  223. data/sub/avm/lib/avm/instances/data/unit.rb +0 -30
  224. data/sub/avm/lib/avm/instances/docker_image.rb +0 -15
  225. data/sub/avm/lib/avm/instances/entry_keys.rb +0 -43
  226. data/sub/avm/lib/avm/instances/ids.rb +0 -30
  227. data/sub/avm/lib/avm/instances/process.rb +0 -31
  228. data/sub/avm/lib/avm/instances/runner.rb +0 -37
  229. data/sub/avm/lib/avm/instances.rb +0 -9
  230. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +0 -46
  231. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_instance_paths.rb +0 -53
  232. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +0 -75
  233. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +0 -37
  234. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +0 -35
  235. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +0 -77
  236. data/sub/avm/lib/avm/launcher/context/settings.rb +0 -53
  237. data/sub/avm/lib/avm/launcher/context.rb +0 -100
  238. data/sub/avm/lib/avm/launcher/errors/base.rb +0 -10
  239. data/sub/avm/lib/avm/launcher/errors/non_project.rb +0 -15
  240. data/sub/avm/lib/avm/launcher/instances/base/cache.rb +0 -43
  241. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +0 -53
  242. data/sub/avm/lib/avm/launcher/instances/base.rb +0 -78
  243. data/sub/avm/lib/avm/launcher/instances/error.rb +0 -10
  244. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +0 -47
  245. data/sub/avm/lib/avm/launcher/instances/settings.rb +0 -26
  246. data/sub/avm/lib/avm/launcher/paths/logical.rb +0 -80
  247. data/sub/avm/lib/avm/launcher/paths/real.rb +0 -44
  248. data/sub/avm/lib/avm/launcher/paths.rb +0 -11
  249. data/sub/avm/lib/avm/launcher/project.rb +0 -17
  250. data/sub/avm/lib/avm/launcher/publish/base.rb +0 -47
  251. data/sub/avm/lib/avm/launcher/publish/check_result.rb +0 -65
  252. data/sub/avm/lib/avm/launcher/publish.rb +0 -11
  253. data/sub/avm/lib/avm/launcher/stereotype.rb +0 -63
  254. data/sub/avm/lib/avm/launcher.rb +0 -9
  255. data/sub/avm/lib/avm/launcher_stereotypes.rb +0 -9
  256. data/sub/avm/lib/avm/patches/eac_config/entry_path.rb +0 -46
  257. data/sub/avm/lib/avm/path_string.rb +0 -27
  258. data/sub/avm/lib/avm/registry/application_scms.rb +0 -15
  259. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +0 -49
  260. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +0 -33
  261. data/sub/avm/lib/avm/registry/application_stereotypes.rb +0 -52
  262. data/sub/avm/lib/avm/registry/applications.rb +0 -38
  263. data/sub/avm/lib/avm/registry/config_objects.rb +0 -18
  264. data/sub/avm/lib/avm/registry/file_formats.rb +0 -20
  265. data/sub/avm/lib/avm/registry/from_gems.rb +0 -80
  266. data/sub/avm/lib/avm/registry/instances.rb +0 -16
  267. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +0 -11
  268. data/sub/avm/lib/avm/registry/runners.rb +0 -10
  269. data/sub/avm/lib/avm/registry/scms.rb +0 -10
  270. data/sub/avm/lib/avm/registry/source_generators.rb +0 -17
  271. data/sub/avm/lib/avm/registry/sources.rb +0 -40
  272. data/sub/avm/lib/avm/registry/with_path/cache.rb +0 -31
  273. data/sub/avm/lib/avm/registry/with_path.rb +0 -49
  274. data/sub/avm/lib/avm/registry.rb +0 -35
  275. data/sub/avm/lib/avm/result.rb +0 -82
  276. data/sub/avm/lib/avm/rspec/setup/launcher.rb +0 -20
  277. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +0 -22
  278. data/sub/avm/lib/avm/rspec/setup.rb +0 -36
  279. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +0 -15
  280. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +0 -31
  281. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +0 -23
  282. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +0 -21
  283. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +0 -11
  284. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +0 -14
  285. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +0 -11
  286. data/sub/avm/lib/avm/runners/base.rb +0 -27
  287. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +0 -39
  288. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +0 -82
  289. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +0 -40
  290. data/sub/avm/lib/avm/scms/auto_commit/rules/last.rb +0 -19
  291. data/sub/avm/lib/avm/scms/auto_commit/rules/manual.rb +0 -40
  292. data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +0 -24
  293. data/sub/avm/lib/avm/scms/auto_commit/rules/nth.rb +0 -31
  294. data/sub/avm/lib/avm/scms/auto_commit/rules/unique.rb +0 -21
  295. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +0 -36
  296. data/sub/avm/lib/avm/scms/auto_commit.rb +0 -11
  297. data/sub/avm/lib/avm/scms/base/branches.rb +0 -22
  298. data/sub/avm/lib/avm/scms/base/commits.rb +0 -34
  299. data/sub/avm/lib/avm/scms/base/milestones.rb +0 -21
  300. data/sub/avm/lib/avm/scms/base/remotes.rb +0 -22
  301. data/sub/avm/lib/avm/scms/base.rb +0 -61
  302. data/sub/avm/lib/avm/scms/branch.rb +0 -26
  303. data/sub/avm/lib/avm/scms/changed_file.rb +0 -26
  304. data/sub/avm/lib/avm/scms/commit.rb +0 -66
  305. data/sub/avm/lib/avm/scms/commit_info.rb +0 -39
  306. data/sub/avm/lib/avm/scms/inflector.rb +0 -22
  307. data/sub/avm/lib/avm/scms/interval.rb +0 -18
  308. data/sub/avm/lib/avm/scms/null/commit.rb +0 -15
  309. data/sub/avm/lib/avm/scms/null.rb +0 -21
  310. data/sub/avm/lib/avm/scms/remote.rb +0 -11
  311. data/sub/avm/lib/avm/scms.rb +0 -9
  312. data/sub/avm/lib/avm/self/docker_image.rb +0 -14
  313. data/sub/avm/lib/avm/self/instance/entry_keys.rb +0 -12
  314. data/sub/avm/lib/avm/self/instance.rb +0 -31
  315. data/sub/avm/lib/avm/source_generators/base.rb +0 -45
  316. data/sub/avm/lib/avm/source_generators/option.rb +0 -11
  317. data/sub/avm/lib/avm/source_generators/option_list.rb +0 -32
  318. data/sub/avm/lib/avm/source_generators/runner.rb +0 -58
  319. data/sub/avm/lib/avm/source_generators.rb +0 -9
  320. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +0 -31
  321. data/sub/avm/lib/avm/sources/auto_commit.rb +0 -11
  322. data/sub/avm/lib/avm/sources/base/application.rb +0 -36
  323. data/sub/avm/lib/avm/sources/base/configuration.rb +0 -92
  324. data/sub/avm/lib/avm/sources/base/instance.rb +0 -16
  325. data/sub/avm/lib/avm/sources/base/locale.rb +0 -33
  326. data/sub/avm/lib/avm/sources/base/organizational.rb +0 -32
  327. data/sub/avm/lib/avm/sources/base/parent.rb +0 -28
  328. data/sub/avm/lib/avm/sources/base/stereotype.rb +0 -18
  329. data/sub/avm/lib/avm/sources/base/sub/remove.rb +0 -38
  330. data/sub/avm/lib/avm/sources/base/sub.rb +0 -26
  331. data/sub/avm/lib/avm/sources/base/subs.rb +0 -67
  332. data/sub/avm/lib/avm/sources/base/subs_paths.rb +0 -32
  333. data/sub/avm/lib/avm/sources/base/testing.rb +0 -70
  334. data/sub/avm/lib/avm/sources/base/update.rb +0 -39
  335. data/sub/avm/lib/avm/sources/base/update_sub.rb +0 -57
  336. data/sub/avm/lib/avm/sources/base/update_subs.rb +0 -19
  337. data/sub/avm/lib/avm/sources/base/version_bump.rb +0 -29
  338. data/sub/avm/lib/avm/sources/base.rb +0 -61
  339. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +0 -26
  340. data/sub/avm/lib/avm/sources/configuration.rb +0 -59
  341. data/sub/avm/lib/avm/sources/issues/deliver.rb +0 -52
  342. data/sub/avm/lib/avm/sources/issues.rb +0 -11
  343. data/sub/avm/lib/avm/sources/runner.rb +0 -40
  344. data/sub/avm/lib/avm/sources/tests/builder.rb +0 -96
  345. data/sub/avm/lib/avm/sources/tests/performer.rb +0 -35
  346. data/sub/avm/lib/avm/sources/tests/result.rb +0 -15
  347. data/sub/avm/lib/avm/sources/tests/single.rb +0 -75
  348. data/sub/avm/lib/avm/sources/tests.rb +0 -11
  349. data/sub/avm/lib/avm/sources/update_error.rb +0 -8
  350. data/sub/avm/lib/avm/sources.rb +0 -9
  351. data/sub/avm/lib/avm/sync.rb +0 -92
  352. data/sub/avm/lib/avm/version_number.rb +0 -45
  353. data/sub/avm/lib/avm/with/application_stereotype.rb +0 -33
  354. data/sub/avm/lib/avm/with/extra_subcommands.rb +0 -44
  355. data/sub/avm/locale/en.yml +0 -6
  356. data/sub/avm/locale/pt-BR.yml +0 -6
  357. data/sub/avm/spec/dummy/avm-tools_stub/avm-tools.gemspec +0 -29
  358. data/sub/avm/spec/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +0 -5
  359. data/sub/avm/spec/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb +0 -3
  360. data/sub/avm/spec/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +0 -16
  361. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +0 -31
  362. data/sub/avm/spec/lib/avm/applications/base/entries_spec_files/config.yml +0 -12
  363. data/sub/avm/spec/lib/avm/applications/base_spec.rb +0 -23
  364. data/sub/avm/spec/lib/avm/applications/base_spec_fixture.yml +0 -3
  365. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +0 -11
  366. data/sub/avm/spec/lib/avm/instances/base_spec.rb +0 -107
  367. data/sub/avm/spec/lib/avm/instances/base_spec_files/config.yml +0 -50
  368. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +0 -139
  369. data/sub/avm/spec/lib/avm/launcher/context_spec.yml +0 -5
  370. data/sub/avm/spec/lib/avm/launcher/context_spec_files/config.yml +0 -9
  371. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +0 -42
  372. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/config.yml +0 -5
  373. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/settings.yaml +0 -5
  374. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +0 -28
  375. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +0 -21
  376. data/sub/avm/spec/lib/avm/scms/base_spec.rb +0 -7
  377. data/sub/avm/spec/lib/avm/sources/base_spec.rb +0 -7
  378. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +0 -9
  379. data/sub/avm/spec/spec_helper/launcher_context/settings.yml +0 -6
  380. data/sub/avm/spec/spec_helper/launcher_context.rb +0 -75
  381. data/sub/avm/template/avm/self/docker_image/Dockerfile +0 -17
  382. data/sub/avm/template/avm/self/docker_image/entrypoint.sh +0 -12
  383. /data/sub/{avm → avm-eac_ruby_base1}/Gemfile +0 -0
  384. /data/sub/{avm → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec_files/dashed-mygem}/spec/rubocop_spec.rb +0 -0
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ module Runners
9
+ class Bundler
10
+ class GemfileLock
11
+ module Git
12
+ private
13
+
14
+ def git_continue
15
+ infom "Adding \"#{gemfile_lock}\"..."
16
+ git_repo.command('add', gemfile_lock).execute!
17
+ if rebase_conflict?
18
+ git_continue_run('rebase')
19
+ elsif cherry_conflict?
20
+ git_continue_run('cherry-pick')
21
+ else
22
+ raise 'Unknown how to continue'
23
+ end
24
+ end
25
+
26
+ def git_continue_run(command)
27
+ infom "\"#{command}\" --continue..."
28
+ cmd = git_repo.command(command, '--continue')
29
+ .envvar('GIT_EDITOR', 'true')
30
+ return unless !cmd.system && !conflict?
31
+
32
+ fatal_error "\"#{cmd}\" failed and there is no conflict"
33
+ end
34
+
35
+ def git_repo
36
+ instance.scm.git_repo
37
+ end
38
+
39
+ def git_reset_checkout
40
+ git_reset_gemfile_lock
41
+ git_checkout_gemfile_lock
42
+ end
43
+
44
+ def git_checkout_gemfile_lock
45
+ infom 'Checkouting...'
46
+ git_repo.command('checkout', '--', gemfile_lock).system!
47
+ end
48
+
49
+ def git_reset_gemfile_lock
50
+ infom 'Reseting...'
51
+ git_repo.command('reset', gemfile_lock).system! if
52
+ ::File.exist?(gemfile_lock)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ module Runners
9
+ class Bundler
10
+ class GemfileLock
11
+ require_sub __FILE__, include_modules: true
12
+ runner_with :help do
13
+ desc 'Manipulage a "Gemfile.lock" file.'
14
+ bool_opt '-c', '--continue', 'Continue Git rebase/cherry-pick.'
15
+ bool_opt '-i', '--install', 'Run "bundle install".'
16
+ bool_opt '-u', '--update', 'Run "bundle update".'
17
+ bool_opt '-r', '--recursive', 'Run until Git rebase/cherry-pick is finished.'
18
+ bool_opt '-a', '--all', 'Same as "-cirud".'
19
+ bool_opt '-d', '--delete', 'Delete Gemfile.lock'
20
+ end
21
+
22
+ def run
23
+ loop do
24
+ git_reset_checkout
25
+ delete_gemfile_lock
26
+ bundle_update
27
+ bundle_install
28
+ git_continue
29
+ break if complete?
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def complete?
36
+ !option_or_all?(:recursive) || !conflict?
37
+ end
38
+
39
+ def delete_gemfile_lock
40
+ ::FileUtils.rm_f(gemfile_lock)
41
+ end
42
+
43
+ def rebasing?
44
+ git_repo.root_path.join('.git', 'rebase-merge').exist?
45
+ end
46
+
47
+ def bundle_install
48
+ infom '"bundle install"...'
49
+ bundle_run('install')
50
+ end
51
+
52
+ def bundle_update
53
+ infom '"bundle update"...'
54
+ bundle_run('update')
55
+ end
56
+
57
+ def gemfile_lock
58
+ 'Gemfile.lock'
59
+ end
60
+
61
+ def bundle_run(*args)
62
+ instance.bundle(*args).system!
63
+ end
64
+
65
+ def conflict?
66
+ rebase_conflict? || cherry_conflict?
67
+ end
68
+
69
+ def rebase_conflict?
70
+ git_repo.root_path.join('.git', 'REBASE_HEAD').exist?
71
+ end
72
+
73
+ def cherry_conflict?
74
+ git_repo.root_path.join('.git', 'CHERRY_PICK_HEAD').exist?
75
+ end
76
+
77
+ def option_or_all?(option)
78
+ parsed[option] || parsed.all?
79
+ end
80
+
81
+ def instance
82
+ runner_context.call(:subject)
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_ruby_base1/bundler/incompatible_parser'
4
+ require 'eac_cli/core_ext'
5
+
6
+ module Avm
7
+ module EacRubyBase1
8
+ module Sources
9
+ module Runners
10
+ class Bundler
11
+ class Incompatible
12
+ runner_with :help do
13
+ desc 'Identify incompatible gems in a "Gemfile.lock" file.'
14
+ bool_opt '-l', '--last', 'Process the last \"bundle update\" result.'
15
+ end
16
+
17
+ def run
18
+ infov 'Cache path', fs_cache.content_path
19
+ infov 'Cached?', fs_cache.stored?
20
+ parser.gems_in_conflict.each do |gem_in_conflict|
21
+ print_gem_in_conflict(gem_in_conflict)
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def bundle_update
28
+ infom 'Running "bundle update"...'
29
+ runner_context.call(:subject).bundle('update').execute[:stdout]
30
+ end
31
+
32
+ def content_path
33
+ fs_cache.write(bundle_update) unless fs_cache.stored? && parsed.last?
34
+ fs_cache.content_path
35
+ end
36
+
37
+ def fs_object_id
38
+ runner_context.call(:subject).path.to_s.variableize
39
+ end
40
+
41
+ def gem_title(gem_in_conflict)
42
+ gem_in_conflict.gem_name
43
+ end
44
+
45
+ def parser_uncached
46
+ ::Avm::EacRubyBase1::Bundler::IncompatibleParser.new(content_path)
47
+ end
48
+
49
+ def print_gem_in_conflict(gem_in_conflict)
50
+ infov 'Gem', gem_title(gem_in_conflict)
51
+ gem_in_conflict.versions_requirements.each do |requirement|
52
+ print_requirement(requirement)
53
+ end
54
+ end
55
+
56
+ def print_requirement(req)
57
+ infov " #{requirement_title(req)}", requirement_value(req)
58
+ end
59
+
60
+ def requirement_stack(req)
61
+ req.stack.map { |d| "#{d.gem_name} (#{d.version})" }.join(' > '.green)
62
+ end
63
+
64
+ def requirement_title(req)
65
+ req.requirements_source.if_present('*')
66
+ end
67
+
68
+ def requirement_value(req)
69
+ requirement_stack(req)
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ module Runners
9
+ class Bundler
10
+ require_sub __FILE__
11
+ runner_with :help, :subcommands do
12
+ desc 'Ruby\'s bundler utitilies for local projects.'
13
+ subcommands
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_ruby_base1/rubygems/gemspec'
4
+ require 'avm/eac_ruby_base1/sources/update_dependency_requirements'
5
+ require 'eac_cli/core_ext'
6
+
7
+ module Avm
8
+ module EacRubyBase1
9
+ module Sources
10
+ module Runners
11
+ class UpdateDependenciesRequirements
12
+ runner_with :help do
13
+ bool_opt '-a', '--all'
14
+ arg_opt '-e', '--exclude', repeat: true
15
+ pos_arg :gem_name, repeat: true, optional: true
16
+ end
17
+
18
+ def run
19
+ start_banner
20
+ update_gemfile_lock
21
+ process_all_gems
22
+ end
23
+
24
+ def gemspec
25
+ ::Avm::EacRubyBase1::Rubygems::Gemspec.from_file(
26
+ runner_context.call(:source).gemspec_path
27
+ )
28
+ end
29
+
30
+ private
31
+
32
+ def exclude?(gem_name)
33
+ parsed.exclude.include?(gem_name)
34
+ end
35
+
36
+ def gem_names_uncached
37
+ ::Set.new(parsed.gem_name + gem_names_from_all).reject { |gem_name| exclude?(gem_name) }
38
+ .sort
39
+ end
40
+
41
+ def gem_names_from_all
42
+ return [] unless parsed.all?
43
+
44
+ gemspec.dependencies.map(&:gem_name)
45
+ end
46
+
47
+ def process_all_gems
48
+ gem_names.each do |gem_name|
49
+ infov 'Gem to update', gem_name
50
+ ::Avm::EacRubyBase1::Sources::UpdateDependencyRequirements
51
+ .new(runner_context.call(:source), gem_name).perform
52
+ end
53
+ end
54
+
55
+ def start_banner
56
+ runner_context.call(:source_banner)
57
+ infov 'Gems to update', gem_names.count
58
+ end
59
+
60
+ def update_gemfile_lock
61
+ infom 'Updating Gemfile\'s lock...'
62
+ runner_context.call(:source).bundle('update').execute!
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ module Runners
9
+ require_sub __FILE__
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_fs/logs'
5
+ require 'eac_ruby_utils/listable'
6
+
7
+ module Avm
8
+ module EacRubyBase1
9
+ module Sources
10
+ class Base
11
+ include ::EacRubyUtils::Listable
12
+
13
+ enable_simple_cache
14
+ lists.add_string :result, :failed, :nonexistent, :successful
15
+
16
+ common_constructor :gem
17
+
18
+ def elegible?
19
+ dependency_present? && gem.root.join(test_directory).exist?
20
+ end
21
+
22
+ def dependency_present?
23
+ gem.gemfile_path.exist? && gem.gemfile_lock_gem_version(dependency_gem).present?
24
+ end
25
+
26
+ def name
27
+ self.class.name.demodulize.gsub(/Test\z/, '')
28
+ end
29
+
30
+ def to_s
31
+ "#{gem}[#{name}]"
32
+ end
33
+
34
+ private
35
+
36
+ def logs_uncached
37
+ ::EacFs::Logs.new.add(:stdout).add(:stderr)
38
+ end
39
+
40
+ def result_uncached
41
+ return RESULT_NONEXISTENT unless elegible?
42
+
43
+ exec_run_with_log ? RESULT_SUCCESSFUL : RESULT_FAILED
44
+ end
45
+
46
+ def exec_run
47
+ gem.bundle('exec', *bundle_exec_args).chdir_root.execute
48
+ end
49
+
50
+ def exec_run_with_log
51
+ r = exec_run
52
+ logs[:stdout].write(r[:stdout])
53
+ logs[:stderr].write(r[:stderr])
54
+ r[:exit_code].zero?
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_ruby_base1/sources/tests/base'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ module Tests
9
+ class Minitest < ::Avm::EacRubyBase1::Sources::Tests::Base
10
+ def bundle_exec_args
11
+ %w[rake test]
12
+ end
13
+
14
+ def dependency_gem
15
+ 'minitest'
16
+ end
17
+
18
+ def elegible?
19
+ super && gem.rakefile_path.exist?
20
+ end
21
+
22
+ def test_directory
23
+ 'test'
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ module Tests
9
+ class Multiple
10
+ class DecoratedGem < ::SimpleDelegator
11
+ enable_speaker
12
+
13
+ def prepare
14
+ return unless gemfile_path.exist?
15
+
16
+ log('running "bundle install"...')
17
+ return if bundle('install').execute.fetch(:exit_code).zero?
18
+
19
+ unless can_remove_gemfile_lock?
20
+ raise '"bundle install" failed and the Gemfile.lock is part of gem' \
21
+ '(Should be changed by developer)'
22
+ end
23
+
24
+ prepare_with_removable_gemfile_lock
25
+ end
26
+
27
+ def tests
28
+ [::Avm::EacRubyBase1::Sources::Tests::Minitest.new(__getobj__),
29
+ ::Avm::EacRubyBase1::Sources::Tests::Rspec.new(__getobj__)]
30
+ end
31
+
32
+ private
33
+
34
+ def log(message)
35
+ infov self, message
36
+ end
37
+
38
+ def prepare_with_removable_gemfile_lock
39
+ log('"bundle install" failed, removing Gemfile.lock and trying again...')
40
+ gemfile_lock_path.unlink if gemfile_lock_path.exist?
41
+ bundle('install').execute!
42
+ end
43
+
44
+ def can_remove_gemfile_lock?
45
+ files.exclude?(gemfile_lock_path.relative_path_from(root))
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Sources
6
+ module Tests
7
+ class Multiple
8
+ class Result
9
+ common_constructor :result
10
+
11
+ COLORS = {
12
+ ::Avm::EacRubyBase1::Sources::Tests::Base::RESULT_FAILED => :red,
13
+ ::Avm::EacRubyBase1::Sources::Tests::Base::RESULT_NONEXISTENT => :white,
14
+ ::Avm::EacRubyBase1::Sources::Tests::Base::RESULT_SUCCESSFUL => :green
15
+ }.freeze
16
+
17
+ def tag
18
+ result.to_s.send(color)
19
+ end
20
+
21
+ def color
22
+ COLORS.fetch(result)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_ruby_base1/sources/tests/minitest'
4
+ require 'avm/eac_ruby_base1/sources/tests/rspec'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module EacRubyBase1
9
+ module Sources
10
+ module Tests
11
+ class Multiple
12
+ require_sub __FILE__
13
+ enable_speaker
14
+ enable_simple_cache
15
+ common_constructor :gems, :options, default: [{}]
16
+ set_callback :initialize, :after, :run
17
+
18
+ def ok?
19
+ failed_tests.none?
20
+ end
21
+
22
+ def only
23
+ options[:only]
24
+ end
25
+
26
+ private
27
+
28
+ def all_tests_uncached
29
+ decorated_gems.flat_map(&:tests)
30
+ end
31
+
32
+ def clear_logs
33
+ all_tests.each do |test|
34
+ test.logs.remove_all
35
+ end
36
+ end
37
+
38
+ def prepare_all_gems
39
+ infom 'Preparing all gems...'
40
+ decorated_gems.each(&:prepare)
41
+ end
42
+
43
+ def decorated_gems_uncached
44
+ r = gems
45
+ r = r.select { |gem| only.include?(gem.name) } if only.present?
46
+ r.map { |gem| DecoratedGem.new(gem) }
47
+ end
48
+
49
+ def failed_tests_uncached
50
+ all_tests.select do |r|
51
+ r.result == ::Avm::EacRubyBase1::Sources::Tests::Base::RESULT_FAILED
52
+ end
53
+ end
54
+
55
+ def final_results_banner
56
+ if failed_tests.any?
57
+ warn 'Some test did not pass:'
58
+ failed_tests.each do |test|
59
+ infov ' * Test', test
60
+ info test.logs.truncate_all
61
+ end
62
+ else
63
+ success 'All tests passed'
64
+ end
65
+ end
66
+
67
+ def run
68
+ start_banner
69
+ prepare_all_gems
70
+ test_all_gems
71
+ final_results_banner
72
+ ensure
73
+ clear_logs
74
+ end
75
+
76
+ def start_banner
77
+ infov 'Gems to test', decorated_gems.count
78
+ end
79
+
80
+ def test_all_gems
81
+ infom 'Running tests...'
82
+ all_tests.each do |test|
83
+ infov test, Result.new(test.result).tag
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_ruby_base1/sources/tests/base'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ module Tests
9
+ class Rspec < ::Avm::EacRubyBase1::Sources::Tests::Base
10
+ def bundle_exec_args
11
+ %w[rspec]
12
+ end
13
+
14
+ def dependency_gem
15
+ 'rspec-core'
16
+ end
17
+
18
+ def test_directory
19
+ 'spec'
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ module Tests
9
+ require_sub(__FILE__)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_ruby_base1/sources/base'
4
+
5
+ module Avm
6
+ module EacRubyBase1
7
+ module Sources
8
+ class Update
9
+ class SubUpdate
10
+ enable_simple_cache
11
+ enable_speaker
12
+ common_constructor :source_update, :sub do
13
+ perform
14
+ end
15
+ delegate :source, to: :source_update
16
+
17
+ protected
18
+
19
+ def on_scm_updated(commit)
20
+ if commit.no_scm_changed_files.any?
21
+ commit = commit.reword(no_scm_update_commit_message)
22
+ source.scm.commit_if_change { source_update.bundle_update }
23
+ .if_present { |v| v.merge_with(commit) }
24
+ else
25
+ commit.reword(scm_update_commit_message)
26
+ end
27
+ end
28
+
29
+ def perform
30
+ update_scm.if_present { |commit| on_scm_updated(commit) }
31
+ end
32
+
33
+ # @return [Avm::EacRubyBase1::Sources::Base]
34
+ def ruby_gem_uncached
35
+ ::Avm::EacRubyBase1::Sources::Base.new(sub.path)
36
+ end
37
+
38
+ def no_scm_update_commit_message
39
+ source_update.i18n_translate(__method__, __locale: source.locale,
40
+ name: ruby_gem.gem_name,
41
+ version: ruby_gem.version)
42
+ end
43
+
44
+ def scm_update_commit_message
45
+ source_update.i18n_translate(__method__, __locale: source.locale)
46
+ end
47
+
48
+ # @return [Avm::Scms::Commit]
49
+ def update_scm
50
+ infom "Updating \"#{sub}\"..."
51
+ source.scm.commit_if_change do
52
+ sub.scm.update
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end