eac_tools 0.90.1 → 0.91.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 (456) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +55 -31
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/Gemfile +8 -0
  5. data/sub/avm/avm.gemspec +28 -0
  6. data/sub/avm/lib/avm/application_scms/base.rb +39 -0
  7. data/sub/avm/lib/avm/application_scms.rb +9 -0
  8. data/sub/avm/lib/avm/application_stereotypes/base.rb +31 -0
  9. data/sub/avm/lib/avm/application_stereotypes.rb +9 -0
  10. data/sub/avm/lib/avm/applications/base/auto_local_source_path.rb +24 -0
  11. data/sub/avm/lib/avm/applications/base/local_instance.rb +31 -0
  12. data/sub/avm/lib/avm/applications/base/local_source.rb +35 -0
  13. data/sub/avm/lib/avm/applications/base/naming.rb +28 -0
  14. data/sub/avm/lib/avm/applications/base/organization.rb +29 -0
  15. data/sub/avm/lib/avm/applications/base/publishing.rb +43 -0
  16. data/sub/avm/lib/avm/applications/base/scm.rb +27 -0
  17. data/sub/avm/lib/avm/applications/base/stereotype.rb +31 -0
  18. data/sub/avm/lib/avm/applications/base.rb +37 -0
  19. data/sub/avm/lib/avm/applications.rb +9 -0
  20. data/sub/avm/lib/avm/data/callbacks.rb +37 -0
  21. data/sub/avm/lib/avm/data/clearer.rb +20 -0
  22. data/sub/avm/lib/avm/data/dumper.rb +142 -0
  23. data/sub/avm/lib/avm/data/loader.rb +28 -0
  24. data/sub/avm/lib/avm/data/package/base_performer.rb +38 -0
  25. data/sub/avm/lib/avm/data/package/build_directory.rb +28 -0
  26. data/sub/avm/lib/avm/data/package/clear.rb +22 -0
  27. data/sub/avm/lib/avm/data/package/dump.rb +45 -0
  28. data/sub/avm/lib/avm/data/package/load.rb +36 -0
  29. data/sub/avm/lib/avm/data/package.rb +67 -0
  30. data/sub/avm/lib/avm/data/performer.rb +49 -0
  31. data/sub/avm/lib/avm/data/rotate.rb +107 -0
  32. data/sub/avm/lib/avm/data/unit.rb +49 -0
  33. data/sub/avm/lib/avm/data/unit_with_commands.rb +52 -0
  34. data/sub/avm/lib/avm/docker/container.rb +50 -0
  35. data/sub/avm/lib/avm/docker/image.rb +76 -0
  36. data/sub/avm/lib/avm/docker/runner.rb +132 -0
  37. data/sub/avm/lib/avm/docker.rb +9 -0
  38. data/sub/avm/lib/avm/entries/auto_values/entry.rb +39 -0
  39. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +24 -0
  40. data/sub/avm/lib/avm/entries/auto_values.rb +11 -0
  41. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +46 -0
  42. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +28 -0
  43. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +39 -0
  44. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +31 -0
  45. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +44 -0
  46. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +42 -0
  47. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +63 -0
  48. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +19 -0
  49. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +28 -0
  50. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +25 -0
  51. data/sub/avm/lib/avm/entries/base.rb +57 -0
  52. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +23 -0
  53. data/sub/avm/lib/avm/entries/entry.rb +70 -0
  54. data/sub/avm/lib/avm/entries/jobs/base.rb +62 -0
  55. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +50 -0
  56. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +15 -0
  57. data/sub/avm/lib/avm/entries/jobs/with_variables_source.rb +15 -0
  58. data/sub/avm/lib/avm/entries/jobs.rb +11 -0
  59. data/sub/avm/lib/avm/entries/keys_constants_set.rb +43 -0
  60. data/sub/avm/lib/avm/entries/uri_builder.rb +91 -0
  61. data/sub/avm/lib/avm/entries.rb +9 -0
  62. data/sub/avm/lib/avm/executables.rb +24 -0
  63. data/sub/avm/lib/avm/file_formats/base.rb +35 -0
  64. data/sub/avm/lib/avm/file_formats/file_result.rb +13 -0
  65. data/sub/avm/lib/avm/file_formats/search_formatter.rb +87 -0
  66. data/sub/avm/lib/avm/file_formats/unknown.rb +18 -0
  67. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +72 -0
  68. data/sub/avm/lib/avm/file_formats.rb +9 -0
  69. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +25 -0
  70. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +62 -0
  71. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +35 -0
  72. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +15 -0
  73. data/sub/avm/lib/avm/instances/base/auto_values.rb +14 -0
  74. data/sub/avm/lib/avm/instances/base/dockerizable.rb +45 -0
  75. data/sub/avm/lib/avm/instances/base/entry_keys.rb +27 -0
  76. data/sub/avm/lib/avm/instances/base/install.rb +31 -0
  77. data/sub/avm/lib/avm/instances/base/processes.rb +27 -0
  78. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +25 -0
  79. data/sub/avm/lib/avm/instances/base/web.rb +16 -0
  80. data/sub/avm/lib/avm/instances/base.rb +71 -0
  81. data/sub/avm/lib/avm/instances/data/files_unit.rb +59 -0
  82. data/sub/avm/lib/avm/instances/data/package.rb +27 -0
  83. data/sub/avm/lib/avm/instances/data/unit.rb +30 -0
  84. data/sub/avm/lib/avm/instances/data.rb +11 -0
  85. data/sub/avm/lib/avm/instances/docker_image.rb +15 -0
  86. data/sub/avm/lib/avm/instances/entry_keys.rb +43 -0
  87. data/sub/avm/lib/avm/instances/ids.rb +30 -0
  88. data/sub/avm/lib/avm/instances/process.rb +31 -0
  89. data/sub/avm/lib/avm/instances/runner.rb +37 -0
  90. data/sub/avm/lib/avm/instances.rb +9 -0
  91. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +46 -0
  92. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_instance_paths.rb +53 -0
  93. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +75 -0
  94. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +37 -0
  95. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +35 -0
  96. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +77 -0
  97. data/sub/avm/lib/avm/launcher/context/settings.rb +53 -0
  98. data/sub/avm/lib/avm/launcher/context.rb +100 -0
  99. data/sub/avm/lib/avm/launcher/errors/base.rb +10 -0
  100. data/sub/avm/lib/avm/launcher/errors/non_project.rb +15 -0
  101. data/sub/avm/lib/avm/launcher/errors.rb +11 -0
  102. data/sub/avm/lib/avm/launcher/instances/base/cache.rb +43 -0
  103. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +53 -0
  104. data/sub/avm/lib/avm/launcher/instances/base.rb +78 -0
  105. data/sub/avm/lib/avm/launcher/instances/error.rb +10 -0
  106. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +47 -0
  107. data/sub/avm/lib/avm/launcher/instances/settings.rb +26 -0
  108. data/sub/avm/lib/avm/launcher/instances.rb +11 -0
  109. data/sub/avm/lib/avm/launcher/paths/logical.rb +80 -0
  110. data/sub/avm/lib/avm/launcher/paths/real.rb +44 -0
  111. data/sub/avm/lib/avm/launcher/paths.rb +11 -0
  112. data/sub/avm/lib/avm/launcher/project.rb +17 -0
  113. data/sub/avm/lib/avm/launcher/publish/base.rb +47 -0
  114. data/sub/avm/lib/avm/launcher/publish/check_result.rb +65 -0
  115. data/sub/avm/lib/avm/launcher/publish.rb +11 -0
  116. data/sub/avm/lib/avm/launcher/stereotype.rb +63 -0
  117. data/sub/avm/lib/avm/launcher.rb +9 -0
  118. data/sub/avm/lib/avm/launcher_stereotypes.rb +9 -0
  119. data/sub/avm/lib/avm/patches/eac_config/entry_path.rb +46 -0
  120. data/sub/avm/lib/avm/path_string.rb +27 -0
  121. data/sub/avm/lib/avm/registry/application_scms.rb +15 -0
  122. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +49 -0
  123. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +33 -0
  124. data/sub/avm/lib/avm/registry/application_stereotypes.rb +52 -0
  125. data/sub/avm/lib/avm/registry/applications.rb +38 -0
  126. data/sub/avm/lib/avm/registry/config_objects.rb +18 -0
  127. data/sub/avm/lib/avm/registry/file_formats.rb +20 -0
  128. data/sub/avm/lib/avm/registry/from_gems.rb +80 -0
  129. data/sub/avm/lib/avm/registry/instances.rb +16 -0
  130. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +11 -0
  131. data/sub/avm/lib/avm/registry/runners.rb +10 -0
  132. data/sub/avm/lib/avm/registry/scms.rb +10 -0
  133. data/sub/avm/lib/avm/registry/source_generators.rb +17 -0
  134. data/sub/avm/lib/avm/registry/sources.rb +40 -0
  135. data/sub/avm/lib/avm/registry/with_path/cache.rb +31 -0
  136. data/sub/avm/lib/avm/registry/with_path.rb +49 -0
  137. data/sub/avm/lib/avm/registry.rb +35 -0
  138. data/sub/avm/lib/avm/result.rb +82 -0
  139. data/sub/avm/lib/avm/rspec/setup/launcher.rb +20 -0
  140. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +22 -0
  141. data/sub/avm/lib/avm/rspec/setup.rb +36 -0
  142. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +15 -0
  143. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +31 -0
  144. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +26 -0
  145. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +21 -0
  146. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +11 -0
  147. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +14 -0
  148. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +11 -0
  149. data/sub/avm/lib/avm/rspec.rb +9 -0
  150. data/sub/avm/lib/avm/runners/base.rb +27 -0
  151. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +39 -0
  152. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +82 -0
  153. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +40 -0
  154. data/sub/avm/lib/avm/scms/auto_commit/rules/last.rb +19 -0
  155. data/sub/avm/lib/avm/scms/auto_commit/rules/manual.rb +40 -0
  156. data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +24 -0
  157. data/sub/avm/lib/avm/scms/auto_commit/rules/nth.rb +31 -0
  158. data/sub/avm/lib/avm/scms/auto_commit/rules/unique.rb +21 -0
  159. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +36 -0
  160. data/sub/avm/lib/avm/scms/auto_commit.rb +11 -0
  161. data/sub/avm/lib/avm/scms/base/branches.rb +22 -0
  162. data/sub/avm/lib/avm/scms/base/commits.rb +34 -0
  163. data/sub/avm/lib/avm/scms/base/milestones.rb +21 -0
  164. data/sub/avm/lib/avm/scms/base/remotes.rb +22 -0
  165. data/sub/avm/lib/avm/scms/base.rb +61 -0
  166. data/sub/avm/lib/avm/scms/branch.rb +26 -0
  167. data/sub/avm/lib/avm/scms/changed_file.rb +26 -0
  168. data/sub/avm/lib/avm/scms/commit.rb +66 -0
  169. data/sub/avm/lib/avm/scms/commit_info.rb +39 -0
  170. data/sub/avm/lib/avm/scms/inflector.rb +22 -0
  171. data/sub/avm/lib/avm/scms/interval.rb +18 -0
  172. data/sub/avm/lib/avm/scms/null/commit.rb +15 -0
  173. data/sub/avm/lib/avm/scms/null.rb +21 -0
  174. data/sub/avm/lib/avm/scms/remote.rb +11 -0
  175. data/sub/avm/lib/avm/scms.rb +9 -0
  176. data/sub/avm/lib/avm/self/docker_image.rb +14 -0
  177. data/sub/avm/lib/avm/self/instance/entry_keys.rb +12 -0
  178. data/sub/avm/lib/avm/self/instance.rb +31 -0
  179. data/sub/avm/lib/avm/source_generators/base.rb +75 -0
  180. data/sub/avm/lib/avm/source_generators/option.rb +11 -0
  181. data/sub/avm/lib/avm/source_generators/option_list.rb +32 -0
  182. data/sub/avm/lib/avm/source_generators/runner.rb +58 -0
  183. data/sub/avm/lib/avm/source_generators.rb +9 -0
  184. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +31 -0
  185. data/sub/avm/lib/avm/sources/auto_commit.rb +11 -0
  186. data/sub/avm/lib/avm/sources/base/application.rb +36 -0
  187. data/sub/avm/lib/avm/sources/base/configuration.rb +92 -0
  188. data/sub/avm/lib/avm/sources/base/instance.rb +16 -0
  189. data/sub/avm/lib/avm/sources/base/locale.rb +33 -0
  190. data/sub/avm/lib/avm/sources/base/organizational.rb +32 -0
  191. data/sub/avm/lib/avm/sources/base/parent.rb +28 -0
  192. data/sub/avm/lib/avm/sources/base/stereotype.rb +18 -0
  193. data/sub/avm/lib/avm/sources/base/sub/remove.rb +38 -0
  194. data/sub/avm/lib/avm/sources/base/sub.rb +26 -0
  195. data/sub/avm/lib/avm/sources/base/subs.rb +67 -0
  196. data/sub/avm/lib/avm/sources/base/subs_paths.rb +32 -0
  197. data/sub/avm/lib/avm/sources/base/testing.rb +70 -0
  198. data/sub/avm/lib/avm/sources/base/update.rb +39 -0
  199. data/sub/avm/lib/avm/sources/base/update_sub.rb +57 -0
  200. data/sub/avm/lib/avm/sources/base/update_subs.rb +19 -0
  201. data/sub/avm/lib/avm/sources/base/version_bump.rb +29 -0
  202. data/sub/avm/lib/avm/sources/base.rb +61 -0
  203. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +26 -0
  204. data/sub/avm/lib/avm/sources/configuration.rb +59 -0
  205. data/sub/avm/lib/avm/sources/issues/deliver.rb +52 -0
  206. data/sub/avm/lib/avm/sources/issues.rb +11 -0
  207. data/sub/avm/lib/avm/sources/runner.rb +40 -0
  208. data/sub/avm/lib/avm/sources/tests/builder.rb +96 -0
  209. data/sub/avm/lib/avm/sources/tests/performer.rb +35 -0
  210. data/sub/avm/lib/avm/sources/tests/result.rb +15 -0
  211. data/sub/avm/lib/avm/sources/tests/single.rb +75 -0
  212. data/sub/avm/lib/avm/sources/tests.rb +11 -0
  213. data/sub/avm/lib/avm/sources/update_error.rb +8 -0
  214. data/sub/avm/lib/avm/sources.rb +9 -0
  215. data/sub/avm/lib/avm/sync.rb +92 -0
  216. data/sub/avm/lib/avm/version.rb +5 -0
  217. data/sub/avm/lib/avm/version_number.rb +45 -0
  218. data/sub/avm/lib/avm/with/application_stereotype.rb +33 -0
  219. data/sub/avm/lib/avm/with/extra_subcommands.rb +44 -0
  220. data/sub/avm/lib/avm.rb +7 -0
  221. data/sub/avm/locale/en.yml +6 -0
  222. data/sub/avm/locale/pt-BR.yml +6 -0
  223. data/sub/avm/spec/dummy/avm-tools_stub/avm-tools.gemspec +29 -0
  224. data/sub/avm/spec/dummy/avm-tools_stub/lib/avm/tools/version.rb +7 -0
  225. data/sub/avm/spec/dummy/avm-tools_stub/lib/avm/tools.rb +6 -0
  226. data/sub/avm/spec/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +5 -0
  227. data/sub/avm/spec/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb +3 -0
  228. data/sub/avm/spec/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +16 -0
  229. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +31 -0
  230. data/sub/avm/spec/lib/avm/applications/base/entries_spec_files/config.yml +12 -0
  231. data/sub/avm/spec/lib/avm/applications/base_spec.rb +23 -0
  232. data/sub/avm/spec/lib/avm/applications/base_spec_fixture.yml +3 -0
  233. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +11 -0
  234. data/sub/avm/spec/lib/avm/instances/base_spec.rb +107 -0
  235. data/sub/avm/spec/lib/avm/instances/base_spec_files/config.yml +50 -0
  236. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +139 -0
  237. data/sub/avm/spec/lib/avm/launcher/context_spec.yml +5 -0
  238. data/sub/avm/spec/lib/avm/launcher/context_spec_files/config.yml +9 -0
  239. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +42 -0
  240. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/config.yml +5 -0
  241. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/settings.yaml +5 -0
  242. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +28 -0
  243. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +21 -0
  244. data/sub/avm/spec/lib/avm/scms/base_spec.rb +7 -0
  245. data/sub/avm/spec/lib/avm/sources/base_spec.rb +7 -0
  246. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +9 -0
  247. data/sub/avm/spec/rubocop_spec.rb +3 -0
  248. data/sub/avm/spec/spec_helper/launcher_context/settings.yml +6 -0
  249. data/sub/avm/spec/spec_helper/launcher_context.rb +75 -0
  250. data/sub/avm/spec/spec_helper.rb +5 -0
  251. data/sub/avm/template/avm/self/docker_image/Dockerfile +17 -0
  252. data/sub/avm/template/avm/self/docker_image/entrypoint.sh +12 -0
  253. data/sub/avm-eac_redmine_base0/Gemfile +8 -0
  254. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +27 -0
  255. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/apache_host.rb +12 -0
  256. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/database.rb +30 -0
  257. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/files.rb +22 -0
  258. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/gitolite.rb +55 -0
  259. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +46 -0
  260. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/nodejs.rb +22 -0
  261. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/web.rb +20 -0
  262. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +59 -0
  263. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/deploy.rb +19 -0
  264. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +106 -0
  265. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +35 -0
  266. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/project.rb +26 -0
  267. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/root.rb +21 -0
  268. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb +54 -0
  269. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api.rb +14 -0
  270. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/docker.rb +17 -0
  271. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb +27 -0
  272. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb +70 -0
  273. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb +30 -0
  274. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project.rb +26 -0
  275. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +56 -0
  276. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners.rb +14 -0
  277. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances.rb +11 -0
  278. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +36 -0
  279. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +131 -0
  280. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +65 -0
  281. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/docker.rb +19 -0
  282. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners.rb +13 -0
  283. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources.rb +11 -0
  284. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +7 -0
  285. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +9 -0
  286. data/sub/avm-eac_redmine_base0/locale/en.yml +6 -0
  287. data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +6 -0
  288. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +22 -0
  289. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +11 -0
  290. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +26 -0
  291. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec_files/config.yml +10 -0
  292. data/sub/avm-eac_redmine_base0/spec/rubocop_spec.rb +3 -0
  293. data/sub/avm-eac_redmine_base0/spec/spec_helper.rb +5 -0
  294. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +45 -0
  295. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml +8 -0
  296. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +33 -0
  297. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile +8 -0
  298. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +10 -0
  299. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +16 -0
  300. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile +5 -0
  301. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/start.sh.template +52 -0
  302. data/sub/avm-eac_ruby_base0/Gemfile +8 -0
  303. data/sub/avm-eac_ruby_base0/avm-eac_ruby_base0.gemspec +20 -0
  304. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/rspec/setup.rb +16 -0
  305. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/rspec/source_generator.rb +33 -0
  306. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/rspec.rb +11 -0
  307. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators/base/application.rb +36 -0
  308. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators/base/executable.rb +31 -0
  309. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators/base/runner.rb +36 -0
  310. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators/base.rb +47 -0
  311. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/source_generators.rb +11 -0
  312. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/sources/base/executable.rb +62 -0
  313. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/sources/base.rb +19 -0
  314. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/sources.rb +11 -0
  315. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/version.rb +7 -0
  316. data/sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0.rb +9 -0
  317. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec.rb +33 -0
  318. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/Gemfile +8 -0
  319. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/Gemfile.lock +108 -0
  320. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/_gitignore +2 -0
  321. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/dashed-mygem.gemspec +22 -0
  322. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/exe/dashed-mygem +6 -0
  323. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem/application.rb +13 -0
  324. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem/runner.rb +23 -0
  325. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem/version.rb +7 -0
  326. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/lib/dashed/mygem.rb +9 -0
  327. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/spec/rubocop_spec.rb +3 -0
  328. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/dashed-mygem/spec/spec_helper.rb +4 -0
  329. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/Gemfile +8 -0
  330. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/Gemfile.lock +108 -0
  331. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/_gitignore +2 -0
  332. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/exe/mygem_underscore +6 -0
  333. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/lib/mygem_underscore/application.rb +11 -0
  334. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/lib/mygem_underscore/runner.rb +21 -0
  335. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/lib/mygem_underscore/version.rb +5 -0
  336. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/lib/mygem_underscore.rb +7 -0
  337. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/mygem_underscore.gemspec +22 -0
  338. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/spec/rubocop_spec.rb +3 -0
  339. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/source_generators/base_spec_files/mygem_underscore/spec/spec_helper.rb +4 -0
  340. data/sub/avm-eac_ruby_base0/spec/lib/avm/eac_ruby_base0/sources/base_spec.rb +16 -0
  341. data/sub/avm-eac_ruby_base0/spec/rubocop_spec.rb +3 -0
  342. data/sub/avm-eac_ruby_base0/spec/spec_helper.rb +4 -0
  343. data/sub/avm-eac_ruby_base0/template/avm/eac_ruby_base0/source_generators/base/application.template +11 -0
  344. data/sub/avm-eac_ruby_base0/template/avm/eac_ruby_base0/source_generators/base/executable.template +6 -0
  345. data/sub/avm-eac_ruby_base0/template/avm/eac_ruby_base0/source_generators/base/runner.template +21 -0
  346. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +1 -1
  347. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base.rb +1 -1
  348. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/launcher_stereotypes/base/publish.rb +10 -10
  349. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/remote.rb +36 -0
  350. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/dependencies.rb +40 -4
  351. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/options.rb +8 -3
  352. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/version_builder.rb +13 -3
  353. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base.rb +38 -37
  354. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/gemfile_local/sibling.rb +1 -1
  355. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
  356. data/sub/avm-eac_ruby_base1/template/avm/eac_ruby_base1/source_generators/base/gemspec.template +4 -4
  357. data/sub/eac_templates/Gemfile +8 -0
  358. data/sub/eac_templates/README.textile +59 -0
  359. data/sub/eac_templates/eac_templates.gemspec +21 -0
  360. data/sub/eac_templates/lib/eac_templates/abstract/directory.rb +42 -0
  361. data/sub/eac_templates/lib/eac_templates/abstract/file.rb +25 -0
  362. data/sub/eac_templates/lib/eac_templates/abstract/fs_object.rb +94 -0
  363. data/sub/eac_templates/lib/eac_templates/abstract/fs_object_by_pathname.rb +13 -0
  364. data/sub/eac_templates/lib/eac_templates/abstract/with_directory_file_methods.rb +69 -0
  365. data/sub/eac_templates/lib/eac_templates/core_ext.rb +4 -0
  366. data/sub/eac_templates/lib/eac_templates/errors/not_found.rb +8 -0
  367. data/sub/eac_templates/lib/eac_templates/errors/type_mismatch.rb +8 -0
  368. data/sub/eac_templates/lib/eac_templates/errors.rb +9 -0
  369. data/sub/eac_templates/lib/eac_templates/interface_methods.rb +12 -0
  370. data/sub/eac_templates/lib/eac_templates/modules/ancestor/directory.rb +37 -0
  371. data/sub/eac_templates/lib/eac_templates/modules/ancestor/file.rb +64 -0
  372. data/sub/eac_templates/lib/eac_templates/modules/ancestor/fs_object.rb +21 -0
  373. data/sub/eac_templates/lib/eac_templates/modules/ancestor.rb +37 -0
  374. data/sub/eac_templates/lib/eac_templates/modules/base/directory.rb +72 -0
  375. data/sub/eac_templates/lib/eac_templates/modules/base/file.rb +31 -0
  376. data/sub/eac_templates/lib/eac_templates/modules/base/fs_object.rb +16 -0
  377. data/sub/eac_templates/lib/eac_templates/modules/base.rb +93 -0
  378. data/sub/eac_templates/lib/eac_templates/modules.rb +9 -0
  379. data/sub/eac_templates/lib/eac_templates/patches/module/erb_template.rb +9 -0
  380. data/sub/eac_templates/lib/eac_templates/patches/module/template.rb +9 -0
  381. data/sub/eac_templates/lib/eac_templates/patches/module.rb +4 -0
  382. data/sub/eac_templates/lib/eac_templates/patches/object/erb_template.rb +9 -0
  383. data/sub/eac_templates/lib/eac_templates/patches/object/template.rb +9 -0
  384. data/sub/eac_templates/lib/eac_templates/patches/object.rb +4 -0
  385. data/sub/eac_templates/lib/eac_templates/patches.rb +4 -0
  386. data/sub/eac_templates/lib/eac_templates/sources/directory.rb +37 -0
  387. data/sub/eac_templates/lib/eac_templates/sources/file.rb +13 -0
  388. data/sub/eac_templates/lib/eac_templates/sources/from_all_gems.rb +4 -0
  389. data/sub/eac_templates/lib/eac_templates/sources/from_gem.rb +37 -0
  390. data/sub/eac_templates/lib/eac_templates/sources/fs_object.rb +53 -0
  391. data/sub/eac_templates/lib/eac_templates/sources/internal_set.rb +22 -0
  392. data/sub/eac_templates/lib/eac_templates/sources/set.rb +56 -0
  393. data/sub/eac_templates/lib/eac_templates/sources/single.rb +29 -0
  394. data/sub/eac_templates/lib/eac_templates/sources.rb +9 -0
  395. data/sub/eac_templates/lib/eac_templates/variables/content.rb +52 -0
  396. data/sub/eac_templates/lib/eac_templates/variables/directory.rb +48 -0
  397. data/sub/eac_templates/lib/eac_templates/variables/file.rb +26 -0
  398. data/sub/eac_templates/lib/eac_templates/variables/fs_object.rb +65 -0
  399. data/sub/eac_templates/lib/eac_templates/variables/not_found_error.rb +7 -0
  400. data/sub/eac_templates/lib/eac_templates/variables/providers/base.rb +24 -0
  401. data/sub/eac_templates/lib/eac_templates/variables/providers/config_reader.rb +29 -0
  402. data/sub/eac_templates/lib/eac_templates/variables/providers/entries_reader.rb +25 -0
  403. data/sub/eac_templates/lib/eac_templates/variables/providers/generic.rb +25 -0
  404. data/sub/eac_templates/lib/eac_templates/variables/providers/hash.rb +29 -0
  405. data/sub/eac_templates/lib/eac_templates/variables/providers.rb +25 -0
  406. data/sub/eac_templates/lib/eac_templates/variables.rb +9 -0
  407. data/sub/eac_templates/lib/eac_templates/version.rb +5 -0
  408. data/sub/eac_templates/lib/eac_templates.rb +7 -0
  409. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec.rb +28 -0
  410. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/a/a_a +1 -0
  411. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/a/a_b +1 -0
  412. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/b +1 -0
  413. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/c +1 -0
  414. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/a/a_d +1 -0
  415. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/c +1 -0
  416. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/d +1 -0
  417. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_a +1 -0
  418. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_b +1 -0
  419. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_c +1 -0
  420. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_d +1 -0
  421. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/b +1 -0
  422. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/c +1 -0
  423. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/d +1 -0
  424. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/a/a_a +1 -0
  425. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/a/a_b +1 -0
  426. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/b +1 -0
  427. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/c +1 -0
  428. data/sub/eac_templates/spec/lib/eac_templates/modules/base/child_spec.rb +110 -0
  429. data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec.rb +26 -0
  430. data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec_files/path/my_stub_with_template +1 -0
  431. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec.rb +42 -0
  432. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file1.template +1 -0
  433. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file2 +1 -0
  434. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path2/subdir1/file3.template +1 -0
  435. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec.rb +35 -0
  436. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec_files/expected_content +2 -0
  437. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec_files/source.template +2 -0
  438. data/sub/eac_templates/spec/rubocop_spec.rb +3 -0
  439. data/sub/eac_templates/spec/spec_helper/modules_resources_context.rb +45 -0
  440. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/a_module/a/a_a +1 -0
  441. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/a_module/b +1 -0
  442. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/prepended_module/a/a_d.template +1 -0
  443. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/sub_class/a/a_c +1 -0
  444. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/super_class/a/a_b +1 -0
  445. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/super_class/b +1 -0
  446. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/a/a_b +1 -0
  447. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/b +1 -0
  448. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/c +1 -0
  449. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/prepended_module/c +1 -0
  450. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/prepended_module/d.template +1 -0
  451. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/sub_class/a/a_d +1 -0
  452. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/sub_class/b +1 -0
  453. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/super_class/a/a_b +1 -0
  454. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/super_class/b +1 -0
  455. data/sub/eac_templates/spec/spec_helper.rb +6 -0
  456. metadata +464 -14
@@ -9,33 +9,49 @@ module Avm
9
9
  module EacRubyBase1
10
10
  module SourceGenerators
11
11
  class Base < ::Avm::SourceGenerators::Base
12
+ GEMSPEC_FILES_DIRECTORY_PATHS = %w[lib].freeze
13
+ GEMSPEC_FILES_FILE_PATHS = [].freeze
12
14
  IDENT = ' '
13
- JOBS = %w[root_directory gemspec root_lib version_lib static gemfile_lock].freeze
15
+ JOBS = %w[gemspec root_lib version_lib gemfile_lock].freeze
14
16
  TEMPLATE_VARIABLES = %w[lib_path name root_module].freeze
15
17
 
16
18
  enable_speaker
17
19
  enable_simple_cache
18
20
  require_sub __FILE__, include_modules: true
19
21
 
20
- def root_directory
21
- target_path
22
+ # @return [String]
23
+ def gemspec_extra
24
+ gemspec_extra_lines.map { |line| "\n#{IDENT}#{line}" }.join
22
25
  end
23
26
 
24
- def name
25
- root_directory.basename.to_s
27
+ # @return [Array<String>]
28
+ def gemspec_extra_lines
29
+ []
26
30
  end
27
31
 
28
- def lib_path
29
- name.split('-').join('/')
32
+ # @return [String]
33
+ def gemspec_files_value
34
+ "Dir[#{gemspec_files_paths.map { |path| "'#{path}'" }.join(', ')}]"
30
35
  end
31
36
 
32
- def perform
33
- infov 'Root directory', root_directory
34
- infov 'Gem name', name
35
- JOBS.each do |job|
36
- infom "Generating #{job.humanize}..."
37
- send("generate_#{job}")
38
- end
37
+ # @return [Array<String>]
38
+ def gemspec_files_paths
39
+ ["{#{gemspec_files_directory_paths.sort.join(',')}}/**/*"] +
40
+ gemspec_files_file_paths.sort
41
+ end
42
+
43
+ # @return [Array<String>]
44
+ def gemspec_files_directory_paths
45
+ GEMSPEC_FILES_DIRECTORY_PATHS
46
+ end
47
+
48
+ # @return [Array<String>]
49
+ def gemspec_files_file_paths
50
+ GEMSPEC_FILES_FILE_PATHS
51
+ end
52
+
53
+ def lib_path
54
+ name.split('-').join('/')
39
55
  end
40
56
 
41
57
  def root_module
@@ -64,46 +80,31 @@ module Avm
64
80
 
65
81
  protected
66
82
 
67
- def apply_to_root_directory(template, subpath)
68
- if template.is_a?(::EacTemplates::Variables::Directory)
69
- template.children.each do |child|
70
- apply_to_root_directory(child, subpath.join(child.basename))
71
- end
72
- elsif template.is_a?(::EacTemplates::Variables::File)
73
- template.apply_to_file(template_variables, root_directory.join(subpath))
74
- else
75
- raise "Unknown template object: #{template}"
76
- end
77
- end
78
-
79
83
  def generate_gemspec
80
84
  template_apply('gemspec', "#{name}.gemspec")
81
85
  end
82
86
 
83
- def generate_root_directory
84
- root_directory.mkpath
85
- end
86
-
87
87
  def generate_root_lib
88
88
  template_apply('root_lib', "lib/#{lib_path}.rb")
89
89
  end
90
90
 
91
- def generate_static
92
- template.child('static').apply(self, root_directory)
93
- end
94
-
95
91
  def generate_version_lib
96
92
  template_apply('version', "lib/#{lib_path}/version.rb")
97
93
  end
98
94
 
95
+ # @return [EacTemplates::Modules::Base]
96
+ def root_template
97
+ template.child('static')
98
+ end
99
+
99
100
  def self_gem_uncached
100
- ::Avm::EacRubyBase1::Sources::Base.new(root_directory)
101
+ ::Avm::EacRubyBase1::Sources::Base.new(target_path)
101
102
  end
102
103
 
103
104
  def template_apply(from, to)
104
- target = root_directory.join(to)
105
+ target = target_path.join(to)
105
106
  target.dirname.mkpath
106
- template.child("#{from}.template").apply_to_file(self, target.to_path)
107
+ template.child(from).apply_to_file(self, target.to_path)
107
108
  end
108
109
  end
109
110
  end
@@ -29,7 +29,7 @@ module Avm
29
29
 
30
30
  # @return [String]
31
31
  def condition_content
32
- "::File.directory?('#{gemspec_relative_path}')"
32
+ "::File.file?(::File.expand_path('#{gemspec_relative_path}', __dir__))"
33
33
  end
34
34
 
35
35
  # @return [String]
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRubyBase1
5
- VERSION = '0.33.2'
5
+ VERSION = '0.34.0'
6
6
  end
7
7
  end
@@ -10,10 +10,10 @@ Gem::Specification.new do |s|
10
10
  s.authors = ['Put here the authors']
11
11
  s.summary = 'Put here de description.'
12
12
 
13
- s.files = Dir['{lib}/**/*']
14
- s.required_ruby_version = '>= 2.7'
13
+ s.files = %%gemspec_files_value%%
14
+ s.required_ruby_version = '>= 2.7'%%gemspec_extra%%
15
15
 
16
- s.add_dependency 'eac_ruby_utils', %%EAC_RUBY_UTILS_VERSION%%
16
+ %%COMMON_DEPENDENCIES%%
17
17
 
18
- s.add_development_dependency 'eac_ruby_gem_support', %%EAC_RUBY_GEM_SUPPORT_VERSION%%
18
+ %%DEVELOPMENT_DEPENDENCIES%%
19
19
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
6
+
7
+ local_gemfile = File.join(File.dirname(__FILE__), 'Gemfile.local')
8
+ eval_gemfile local_gemfile if File.exist?(local_gemfile)
@@ -0,0 +1,59 @@
1
+ h1. E.A.C. Templates
2
+
3
+ Seja a árvore fonte:
4
+
5
+ <pre><code class="shell">
6
+ ./
7
+ ├── path1/
8
+ │   ├── a_module/
9
+ │   │   ├── a/
10
+ │   │   │   └── a_a
11
+ │   │   └── b
12
+ │   ├── sub_class/
13
+ │   │ └── a/
14
+ │   │    └── a_c
15
+ │   └── super_class/
16
+ │   ├── a/
17
+ │   │   └── a_b
18
+ │   └── b
19
+ └── path2/
20
+ ├── a_module/
21
+ │   ├── a/
22
+ │   │   └── a_b
23
+ │   ├── b
24
+ │   └── c
25
+ ├── prepended_module/
26
+ │   └── c
27
+ ├── sub_class/
28
+ │   └── b
29
+ └── super_class/
30
+ ├── a/
31
+ │   └── a_b
32
+ └── b
33
+ </code></pre>
34
+
35
+ Com caminhos de busca @./path1/@ e @./path2/@, nessa ordem. E os módulos:
36
+
37
+ <pre><code class="ruby">
38
+ module AModule; end
39
+
40
+ class SuperClass
41
+ include AModule
42
+ end
43
+
44
+ module PrependedModule; end
45
+
46
+ class SubClass < SuperClass
47
+ prepend PrependedModule
48
+ end
49
+ </code></pre>
50
+
51
+ O resultado da busca deve ser:
52
+
53
+ |_. Caminho buscado |_. AModule |_. SuperClass |_. PrependedModule |_. SubClass |
54
+ |_. a | @[a_a, a_b]@ | @[a_a, a_b]@ | @[a_a, a_b]@ | @[a_a, a_b, a_c]@ |
55
+ |_. a/a_a | @path1/a_module/a/a_a@ | @path1/a_module/a/a_a@ | _Não encontra_ | @path1/a_module/a/a_a@ |
56
+ |_. a/a_b | @path2/a_module/a/a_b@ | @path1/super_class/a/a_b@| _Não encontra_ | @path1/super_class/a/a_b@ |
57
+ |_. a/a_c | _Não encontra_ | _Não encontra_ | _Não encontra_ | @path1/a_module/a/a_c@ |
58
+ |_. b | @path1/a_module/b@ | @path1/super_class/b@ | _Não encontra_ | @path1/sub_class/b@ |
59
+ |_. c | @path2/a_module/c@ | @path2/a_module/c@ |@path2/prepended_module/c@ | @path2/prepended_module/c@ |
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+
5
+ require 'eac_templates/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'eac_templates'
9
+ s.version = EacTemplates::VERSION
10
+ s.authors = ['Put here the authors']
11
+ s.summary = 'Put here de description.'
12
+
13
+ s.files = Dir['{lib}/**/*']
14
+ s.required_ruby_version = '>= 2.7'
15
+
16
+ s.add_dependency 'eac_config', '~> 0.14', '>= 0.14.2'
17
+ s.add_dependency 'eac_ruby_utils', '~> 0.122'
18
+
19
+ s.add_development_dependency 'eac_fs', '~> 0.17'
20
+ s.add_development_dependency 'eac_ruby_gem_support', '~> 0.10'
21
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/interface_methods'
5
+ require 'eac_templates/abstract/fs_object'
6
+ require 'eac_templates/variables/directory'
7
+
8
+ module EacTemplates
9
+ module Abstract
10
+ class Directory < ::EacTemplates::Abstract::FsObject
11
+ enable_abstract_methods
12
+ delegate(*::EacTemplates::InterfaceMethods::DIRECTORY - %i[child chidren], to: :applier)
13
+
14
+ # @param basename [Pathname]
15
+ # @return [EacTemplates::Abstract::FsObject]
16
+ def build_child(child_basename, child_type)
17
+ child_basename = child_basename.to_pathname
18
+ child_type = type_list.value_validate!(child_type)
19
+ category_module.const_get(child_type.to_s.camelize)
20
+ .new(owner, self, child_basename, options)
21
+ end
22
+
23
+ # @param basename [Pathname]
24
+ # @return [EacTemplates::Abstract::FsObject]
25
+ def child(basename)
26
+ basename = basename.to_pathname
27
+ children.find { |c| c.basename == basename } ||
28
+ raise_not_found("No child found with basename \"#{basename}\"")
29
+ end
30
+
31
+ # @return [Enumerable<EacTemplates::Abstract::FsObject>]
32
+ def children
33
+ children_basenames.map { |c_basename, c_type| build_child(c_basename, c_type) }
34
+ end
35
+
36
+ # @return [Hash<Pathname, Symbol>]
37
+ def children_basenames
38
+ raise_abstract_method __method__
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/interface_methods'
5
+ require 'eac_templates/abstract/fs_object'
6
+ require 'eac_templates/variables/file'
7
+
8
+ module EacTemplates
9
+ module Abstract
10
+ class File < ::EacTemplates::Abstract::FsObject
11
+ enable_abstract_methods
12
+ delegate(*::EacTemplates::InterfaceMethods::FILE - %i[content path], to: :applier)
13
+
14
+ # @return [String]
15
+ def content
16
+ path.read
17
+ end
18
+
19
+ # @return [Pathname]
20
+ def path
21
+ raise_abstract_method __method__
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/abstract/fs_object_by_pathname'
5
+ require 'eac_templates/errors/not_found'
6
+
7
+ module EacTemplates
8
+ module Abstract
9
+ class FsObject
10
+ class << self
11
+ # @param obj [Object]
12
+ # @return [EacTemplates::Abstract::FsObject, EacTemplates::Abstracts::FsObjectByPathname]
13
+ def assert(obj)
14
+ if obj.is_a?(self)
15
+ obj
16
+ else
17
+ ::EacTemplates::Abstract::FsObjectByPathname.new(obj)
18
+ end
19
+ end
20
+
21
+ # @param owner [Object]
22
+ # @param parent_object [Object, nil]
23
+ # @param subpath [Pathname]
24
+ # @return [EacTemplates::Abstract::FsObject]
25
+ def by_subpath(owner, parent_object, subpath, options = {})
26
+ r = new(owner, parent_object, nil, options)
27
+ subpath.if_present(::Pathname.new(''), &:to_pathname).each_filename do |basename|
28
+ parent_object = r
29
+ r = new(owner, parent_object, basename, options)
30
+ end
31
+ r
32
+ end
33
+ end
34
+
35
+ enable_abstract_methods
36
+ enable_simple_cache
37
+ enable_listable
38
+ lists.add_symbol :option, :source_set
39
+ lists.add_symbol :type, :directory, :file
40
+ common_constructor :owner, :parent_object, :basename, :options, default: [{}] do
41
+ self.basename = basename.present? ? basename.to_pathname : ::Pathname.new('')
42
+ self.options = ::EacTemplates::Abstract::FsObject.lists.option.hash_keys_validate!(options)
43
+ end
44
+
45
+ # @return [EacTemplates::Variables::Directory, EacTemplates::Variables::File]
46
+ def applier
47
+ applier_class.new(self)
48
+ end
49
+
50
+ # @return [Class]
51
+ def applier_class
52
+ ::EacTemplates::Variables.const_get(type.to_s.camelize)
53
+ end
54
+
55
+ # @return [Module]
56
+ def category_module
57
+ self.class.module_parent
58
+ end
59
+
60
+ # @return [Pathname]
61
+ def path_for_search
62
+ if parent_object.present?
63
+ parent_object.path_for_search.join(basename)
64
+ else
65
+ path_for_search_prefix.join(basename)
66
+ end
67
+ end
68
+
69
+ # @return [Pathname]
70
+ def path_for_search_prefix
71
+ raise_abstract_method __method__
72
+ end
73
+
74
+ def raise_not_found(message)
75
+ raise ::EacTemplates::Errors::NotFound, message
76
+ end
77
+
78
+ # @return [EacTemplates::Sources::Set]
79
+ def source_set
80
+ options[OPTION_SOURCE_SET] || ::EacTemplates::Sources::Set.default
81
+ end
82
+
83
+ # @return [Symbol]
84
+ def type
85
+ type_list.value_validate!(self.class.name.demodulize.underscore.to_sym)
86
+ end
87
+
88
+ # @return [EacRubyUtils::Listable::SymbolList]
89
+ def type_list
90
+ ::EacTemplates::Abstract::FsObject.lists.type
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacTemplates
6
+ module Abstract
7
+ class FsObjectByPathname
8
+ common_constructor :path do
9
+ self.path = path.to_pathname
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_templates/errors/not_found'
4
+
5
+ module EacTemplates
6
+ module Abstract
7
+ module WithDirectoryFileMethods
8
+ common_concern do
9
+ enable_simple_cache
10
+ end
11
+
12
+ def build_fs_object(type)
13
+ fs_object_class(type).by_subpath(self, nil, subpath, source_set: source_set)
14
+ end
15
+
16
+ # @param child_basename [Pathname
17
+ # @return [Pathname]
18
+ def child_subpath(child_basename)
19
+ subpath.if_present(child_basename) { |v| v.join(child_basename) }.to_pathname
20
+ end
21
+
22
+ # @return [Boolean]
23
+ def directory?
24
+ directory.found?
25
+ end
26
+
27
+ # @return [Boolean]
28
+ def file?
29
+ file.found?
30
+ end
31
+
32
+ # @return [Boolean]
33
+ def file_template?
34
+ file? && file.template?
35
+ end
36
+
37
+ # @return [Boolean]
38
+ def found?
39
+ directory? || file?
40
+ end
41
+
42
+ # @param type [Symbol]
43
+ # @return [Class]
44
+ def fs_object_class(type)
45
+ self.class.const_get(type.to_s.camelize)
46
+ end
47
+
48
+ # @return [EacTemplates::Abstract::Directory, EacTemplates::Abstract::File]
49
+ def sub_fs_object
50
+ return file if file.found?
51
+ return directory if directory.found?
52
+
53
+ raise ::EacTemplates::Errors::NotFound, "No template found: #{self}"
54
+ end
55
+
56
+ private
57
+
58
+ # @return [EacTemplates::Abstract::Directory]
59
+ def directory_uncached
60
+ build_fs_object(:directory)
61
+ end
62
+
63
+ # @return [EacTemplates::Abstract::File]
64
+ def file_uncached
65
+ build_fs_object(:file)
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_templates/patches'
4
+ require 'eac_templates/sources/from_all_gems'
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacTemplates
4
+ module Errors
5
+ class NotFound < ::RuntimeError
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacTemplates
4
+ module Errors
5
+ class TypeMismatch < ::RuntimeError
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacTemplates
6
+ module Errors
7
+ require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacTemplates
4
+ module InterfaceMethods
5
+ COMMON = %i[apply path].freeze
6
+ ONLY_DIRECTORY = %i[child children].freeze
7
+ DIRECTORY = COMMON + ONLY_DIRECTORY
8
+ ONLY_FILE = %i[apply_to_file content variables].freeze
9
+ FILE = COMMON + ONLY_FILE
10
+ ALL = COMMON + ONLY_DIRECTORY + ONLY_FILE
11
+ end
12
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/abstract/directory'
5
+ require 'eac_templates/interface_methods'
6
+ require 'eac_templates/modules/ancestor/fs_object'
7
+
8
+ module EacTemplates
9
+ module Modules
10
+ class Ancestor
11
+ class Directory < ::EacTemplates::Abstract::Directory
12
+ include ::EacTemplates::Modules::Ancestor::FsObject
13
+ delegate :found?, :path, to: :source_object
14
+
15
+ # @return [Hash<Pathname, Symbol>]
16
+ def children_basenames
17
+ source_object.children_basenames.to_h { |k, v| parse_child_basename(k, v) }
18
+ end
19
+
20
+ protected
21
+
22
+ # @param basename [Pathname]
23
+ # @param type [Symbol]
24
+ # @return [Array]
25
+ def parse_child_basename(basename, type)
26
+ return [basename, type] unless type == :file
27
+
28
+ new_basename = ::EacTemplates::Modules::Ancestor::File.parse_basename(basename)
29
+
30
+ return [basename, type] if new_basename == basename
31
+
32
+ [new_basename, :file_template]
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/abstract/file'
5
+ require 'eac_templates/interface_methods'
6
+ require 'eac_templates/modules/ancestor/fs_object'
7
+
8
+ module EacTemplates
9
+ module Modules
10
+ class Ancestor
11
+ class File < ::EacTemplates::Abstract::File
12
+ include ::EacTemplates::Modules::Ancestor::FsObject
13
+
14
+ TEMPLATE_EXTNAME_PATTERN =
15
+ /#{::Regexp.quote(::EacTemplates::Variables::FsObject::TEMPLATE_EXTNAME)}\z/.freeze
16
+
17
+ class << self
18
+ def parse_basename(basename)
19
+ basename.if_present do |v|
20
+ v.to_pathname
21
+ .to_path
22
+ .gsub(TEMPLATE_EXTNAME_PATTERN, '')
23
+ .to_pathname
24
+ end
25
+ end
26
+ end
27
+
28
+ # @return [Boolean]
29
+ def found?
30
+ source_object.found? || template?
31
+ end
32
+
33
+ # @return [Pathname]
34
+ def path
35
+ template? ? template_source_object.path : source_object.path
36
+ end
37
+
38
+ # @return [Pathname]
39
+ def basename
40
+ self.class.parse_basename(super)
41
+ end
42
+
43
+ # @return [Boolean]
44
+ def template?
45
+ template_source_object.found?
46
+ end
47
+
48
+ protected
49
+
50
+ # @return [EacTemplates::Sources::File]
51
+ def template_source_object_uncached
52
+ owner.source_set.send(type, template_source_object_path_for_search)
53
+ end
54
+
55
+ # @return [Pathname]
56
+ def template_source_object_path_for_search
57
+ path_for_search.basename_sub do |b|
58
+ "#{b}#{::EacTemplates::Variables::FsObject::TEMPLATE_EXTNAME}"
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/interface_methods'
5
+
6
+ module EacTemplates
7
+ module Modules
8
+ class Ancestor
9
+ module FsObject
10
+ # @return [Pathname]
11
+ delegate :path_for_search, to: :owner
12
+
13
+ private
14
+
15
+ def source_object_uncached
16
+ owner.source_set.send(type, path_for_search)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end