eac_tools 0.125.0 → 0.126.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +34 -29
- data/eac_tools.gemspec +2 -2
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm-eac_asciidoctor_base0/.gitrepo +7 -0
- data/sub/avm-eac_asciidoctor_base0/.rubocop.yml +3 -0
- data/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +24 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/documents_owner.rb +27 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/file_formats/base/file_resource_name.rb +34 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/file_formats/base.rb +14 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/apache_host.rb +17 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/apache_path.rb +10 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/base.rb +28 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/body_source.rb +49 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/body_target.rb +35 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/children.rb +47 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/header_lines/docinfo_lines.rb +47 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/header_lines.rb +78 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/media.rb +27 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb +62 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document.rb +49 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/theme.rb +38 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build.rb +61 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/deploy.rb +24 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/base.rb +19 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb +52 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/child_docs/document_builder.rb +60 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/child_docs.rb +30 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/default_body.rb +18 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/todo.rb +18 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging/catcher.rb +44 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging/error.rb +16 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/source_generators/base.rb +24 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base/instance_to_build.rb +44 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base/theme.rb +45 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base.rb +42 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document/media.rb +27 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document/title.rb +30 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document.rb +55 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/build.rb +55 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document/build.rb +49 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document.rb +26 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/documents.rb +26 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/ignore_errors_option.rb +42 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners.rb +11 -0
- data/sub/{avm-eac_redmine_base0/lib/avm/eac_redmine_base0 → avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0}/version.rb +2 -2
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0.rb +6 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/file_formats/base_spec.rb +11 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec.rb +79 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec_files/pre_processed_root_body.adoc +26 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec.rb +19 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/_media/a_media_file +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/_media/a_media_file +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/body.adoc +11 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/title +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/body.adoc +11 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/_media/a_media_file +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/body.adoc +11 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/title +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/title +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/.clearable_directory +0 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_media/a_media_file +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_theme/main.css +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/_media/a_media_file +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/index.html +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/doc2_1/_media/a_media_file +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/doc2_1/index.html +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/index.html +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/index.html +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec.rb +5 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/.gitignore +2 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/build/.clearable_directory +0 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/body.adoc +11 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/title +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/theme/main.css +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/sources/base_spec.rb +13 -0
- data/sub/avm-eac_asciidoctor_base0/spec/spec_helper/eac_asciidoctor_base0_stubs.rb +55 -0
- data/sub/{avm-eac_redmine_base0 → avm-eac_asciidoctor_base0}/spec/spec_helper.rb +3 -2
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/instances/deploy/.keep +1 -0
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/.gitignore +2 -0
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/build/.clearable_directory +0 -0
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/body.adoc +11 -0
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/title +1 -0
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/theme/main.css +1 -0
- metadata +88 -65
- data/sub/avm-eac_redmine_base0/.gitrepo +0 -7
- data/sub/avm-eac_redmine_base0/.rubocop.yml +0 -2
- data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +0 -26
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/apache_host.rb +0 -10
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/database.rb +0 -27
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/files.rb +0 -18
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/gitolite.rb +0 -52
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +0 -43
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/nodejs.rb +0 -21
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/web.rb +0 -17
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +0 -63
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/deploy.rb +0 -16
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +0 -110
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +0 -27
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/project.rb +0 -30
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/root.rb +0 -17
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb +0 -67
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api.rb +0 -16
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/docker.rb +0 -15
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb +0 -25
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb +0 -68
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb +0 -26
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project.rb +0 -22
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +0 -53
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base/default_settings.rb +0 -45
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base/update.rb +0 -16
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +0 -34
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update/bundle_changes.rb +0 -64
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update/scm.rb +0 -34
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update/source_package.rb +0 -26
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update/tempdir.rb +0 -22
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +0 -95
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +0 -61
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/docker.rb +0 -16
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +0 -11
- data/sub/avm-eac_redmine_base0/locale/en.yml +0 -6
- data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +0 -6
- data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +0 -19
- data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +0 -11
- data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +0 -24
- data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec_files/config.yml +0 -10
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +0 -46
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml +0 -8
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +0 -37
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile +0 -8
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +0 -10
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +0 -16
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile +0 -5
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/start.sh.template +0 -53
- /data/sub/{avm-eac_redmine_base0 → avm-eac_asciidoctor_base0}/.gitignore +0 -0
- /data/sub/{avm-eac_redmine_base0 → avm-eac_asciidoctor_base0}/.rspec +0 -0
- /data/sub/{avm-eac_redmine_base0 → avm-eac_asciidoctor_base0}/Gemfile +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'asciidoctor'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module EacAsciidoctorBase0
|
|
7
|
+
module Sources
|
|
8
|
+
class Document
|
|
9
|
+
module Title
|
|
10
|
+
TITLE_BASENAME = 'title'
|
|
11
|
+
|
|
12
|
+
# @return [String]
|
|
13
|
+
def default_title
|
|
14
|
+
root_path.basename.to_s.humanize.split(/\s+/).map(&:upcase_first).join(' ')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# @return [String]
|
|
18
|
+
def title
|
|
19
|
+
title_path.exist? ? title_path.read.strip : default_title
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @return [Pathname]
|
|
23
|
+
def title_path
|
|
24
|
+
root_path.join(TITLE_BASENAME)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'asciidoctor'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module EacAsciidoctorBase0
|
|
7
|
+
module Sources
|
|
8
|
+
class Document
|
|
9
|
+
enable_simple_cache
|
|
10
|
+
enable_speaker
|
|
11
|
+
require_sub __FILE__, include_modules: true
|
|
12
|
+
common_constructor :source, :parent_document, :basename
|
|
13
|
+
|
|
14
|
+
# Absolute path to the Asciidoctor file.
|
|
15
|
+
#
|
|
16
|
+
# @return [Pathname]
|
|
17
|
+
def body_path
|
|
18
|
+
root_path.join(
|
|
19
|
+
::Avm::EacAsciidoctorBase0::Sources::Base::CONTENT_DOCUMENT_BASENAME
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @return [Avm::EacAsciidoctorBase0::Instances::Build::Document]
|
|
24
|
+
def build_document
|
|
25
|
+
source.build.document(subpath)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Absolute path to the document's source root.
|
|
29
|
+
#
|
|
30
|
+
# @return [Pathname]
|
|
31
|
+
def root_path
|
|
32
|
+
source.content_directory.join(subpath)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# @return [Pathname]
|
|
36
|
+
def subpath
|
|
37
|
+
parent_document.if_present('.'.to_pathname) { |pd| pd.subpath.join(basename) }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# @return [String]
|
|
41
|
+
def to_s
|
|
42
|
+
subpath.to_path
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
private
|
|
46
|
+
|
|
47
|
+
def children_uncached
|
|
48
|
+
root_path.children.select(&:directory?)
|
|
49
|
+
.reject { |path| path.basename.to_path == MEDIA_DIRECTORY_BASENAME }
|
|
50
|
+
.map { |path| self.class.new(source, self, path.basename) }
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'os'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module EacAsciidoctorBase0
|
|
7
|
+
module Sources
|
|
8
|
+
module Runners
|
|
9
|
+
class Build
|
|
10
|
+
include ::Avm::EacAsciidoctorBase0::Sources::Runners::IgnoreErrorsOption
|
|
11
|
+
|
|
12
|
+
runner_with :help do
|
|
13
|
+
desc 'Build the project'
|
|
14
|
+
arg_opt '-d', '--target-dir', 'Directory to build'
|
|
15
|
+
bool_opt '--open', 'Show the result.'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
# @return [Avm::EacAsciidoctorBase0::Instances::Build]
|
|
21
|
+
def build_uncached
|
|
22
|
+
source.build(target_directory: parsed.target_dir)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def default_target_directory
|
|
26
|
+
runner_context.call(:project).root.join('build')
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def open
|
|
30
|
+
return unless parsed.open?
|
|
31
|
+
|
|
32
|
+
infom "Opening \"#{open_path}\"..."
|
|
33
|
+
::EacRubyUtils::Envs.local.command(OS.open_file_command, open_path).system!
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def open_path
|
|
37
|
+
build.root_document.body_target_path
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# @return [void]
|
|
41
|
+
def run_without_rescue
|
|
42
|
+
start_banner
|
|
43
|
+
build.perform
|
|
44
|
+
open
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def start_banner
|
|
48
|
+
runner_context.call(:source_banner)
|
|
49
|
+
infov 'Target directory', build.target_directory
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document/build.rb
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'os'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module EacAsciidoctorBase0
|
|
7
|
+
module Sources
|
|
8
|
+
module Runners
|
|
9
|
+
class Document
|
|
10
|
+
class Build
|
|
11
|
+
include ::Avm::EacAsciidoctorBase0::Sources::Runners::IgnoreErrorsOption
|
|
12
|
+
|
|
13
|
+
runner_with :help do
|
|
14
|
+
bool_opt '-O', '--open'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
protected
|
|
18
|
+
|
|
19
|
+
def run_without_rescue
|
|
20
|
+
%w[build open ending].each { |p| send("run_#{p}") }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def build_document_uncached
|
|
26
|
+
document.build_document
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def run_build
|
|
30
|
+
build_document.perform_self
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def run_ending
|
|
34
|
+
success 'Done'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def run_open
|
|
38
|
+
return unless parsed.open?
|
|
39
|
+
|
|
40
|
+
infov 'Opening', build_document.body_target_path
|
|
41
|
+
::EacRubyUtils::Envs.local.command(OS.open_file_command,
|
|
42
|
+
build_document.body_target_path).system!
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Avm
|
|
4
|
+
module EacAsciidoctorBase0
|
|
5
|
+
module Sources
|
|
6
|
+
module Runners
|
|
7
|
+
class Document
|
|
8
|
+
runner_with :help, :subcommands do
|
|
9
|
+
pos_arg :subpath
|
|
10
|
+
subcommands
|
|
11
|
+
end
|
|
12
|
+
delegate :subpath, to: :parsed
|
|
13
|
+
for_context :document, :subpath
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
# @return [Avm::EacAsciidoctorBase0::Sources::Document]
|
|
18
|
+
# @raise [KeyError]
|
|
19
|
+
def document_uncached
|
|
20
|
+
source.document(subpath)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Avm
|
|
4
|
+
module EacAsciidoctorBase0
|
|
5
|
+
module Sources
|
|
6
|
+
module Runners
|
|
7
|
+
class Documents
|
|
8
|
+
runner_with :help
|
|
9
|
+
|
|
10
|
+
def run
|
|
11
|
+
infov 'Documents', documents.count
|
|
12
|
+
documents.each do |document|
|
|
13
|
+
infov ' * ', document
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def documents_uncached
|
|
20
|
+
source.documents
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Avm
|
|
4
|
+
module EacAsciidoctorBase0
|
|
5
|
+
module Sources
|
|
6
|
+
module Runners
|
|
7
|
+
module IgnoreErrorsOption
|
|
8
|
+
common_concern do
|
|
9
|
+
acts_as_abstract :run_without_rescue
|
|
10
|
+
|
|
11
|
+
include ::EacCli::Runner
|
|
12
|
+
|
|
13
|
+
runner_definition do
|
|
14
|
+
bool_opt '-g', '--ignore-errors'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @return [Boolean]
|
|
19
|
+
delegate :ignore_errors?, to: :parsed
|
|
20
|
+
|
|
21
|
+
# @return [void]
|
|
22
|
+
def run
|
|
23
|
+
catcher_send { run_without_rescue }
|
|
24
|
+
rescue ::Avm::EacAsciidoctorBase0::Logging::Error => e
|
|
25
|
+
fatal_error e
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
protected
|
|
29
|
+
|
|
30
|
+
# @return [Proc]
|
|
31
|
+
def catcher_send(&block)
|
|
32
|
+
if ignore_errors?
|
|
33
|
+
block.call
|
|
34
|
+
else
|
|
35
|
+
::Avm::EacAsciidoctorBase0::Logging::Catcher.on(&block)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/file_formats/base_spec.rb
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe Avm::EacAsciidoctorBase0::FileFormats::Base do
|
|
4
|
+
include_examples 'avm_file_format_file_resource_name', {
|
|
5
|
+
'content/title' => 'Content[/]',
|
|
6
|
+
'content/body.adoc' => 'Content[/]',
|
|
7
|
+
'content/abc/title' => 'Content[/abc]',
|
|
8
|
+
'content/abc/body.adoc' => 'Content[/abc]',
|
|
9
|
+
'content/abc/sub/body.adoc' => 'Content[/abc/sub]'
|
|
10
|
+
}
|
|
11
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe Avm::EacAsciidoctorBase0::Instances::Build::Document do
|
|
4
|
+
let(:app_director) { eac_asciidoctor_base0_stubs }
|
|
5
|
+
let(:build) { Avm::EacAsciidoctorBase0::Instances::Build.new(app_director.instance) }
|
|
6
|
+
let(:fixtures_dir) { __dir__.to_pathname.join('document_spec_files') }
|
|
7
|
+
let(:instance) { build_doc_child(build.root_document, :c1, :c1_1, :c1_1_1) } # rubocop:disable Naming/VariableNumber
|
|
8
|
+
let(:target_file) { fixtures_dir.join('pre_processed_root_body.adoc') }
|
|
9
|
+
let(:source) { app_director.source }
|
|
10
|
+
let(:doc_template) do
|
|
11
|
+
r = temp_dir
|
|
12
|
+
FileUtils.copy_entry(source.root_document.root_path, r)
|
|
13
|
+
r
|
|
14
|
+
end
|
|
15
|
+
let(:pre_processed_body_source_content) do
|
|
16
|
+
sanitize_body_source(instance.pre_processed_body_source_content)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
before do
|
|
20
|
+
copy_template_hash(
|
|
21
|
+
source.root_document,
|
|
22
|
+
c1: {
|
|
23
|
+
c1_1: { # rubocop:disable Naming/VariableNumber
|
|
24
|
+
c1_1_1: { # rubocop:disable Naming/VariableNumber
|
|
25
|
+
c1_1_1_1: {}, # rubocop:disable Naming/VariableNumber
|
|
26
|
+
c1_1_1_2: {} # rubocop:disable Naming/VariableNumber
|
|
27
|
+
},
|
|
28
|
+
c1_1_2: { # rubocop:disable Naming/VariableNumber
|
|
29
|
+
c1_1_2_1: {}, # rubocop:disable Naming/VariableNumber
|
|
30
|
+
c1_1_2_2: {} # rubocop:disable Naming/VariableNumber
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
c2: {
|
|
35
|
+
c2_1: {} # rubocop:disable Naming/VariableNumber
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it do
|
|
41
|
+
expect(pre_processed_body_source_content).to eq(target_file.read)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# @return [Avm::EacAsciidoctorBase0::Sources::Document]
|
|
45
|
+
def copy_template_doc(parent, basename)
|
|
46
|
+
parent.assert_argument(Avm::EacAsciidoctorBase0::Sources::Document, 'parent')
|
|
47
|
+
|
|
48
|
+
root_target = parent.root_path.join(basename.to_s)
|
|
49
|
+
FileUtils.copy_entry(doc_template, root_target)
|
|
50
|
+
root_target.join('title').write(root_target.basename.to_path)
|
|
51
|
+
Avm::EacAsciidoctorBase0::Sources::Document.new(parent.source, parent,
|
|
52
|
+
root_target.basename)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# @return [Array<Avm::EacAsciidoctorBase0::Sources::Document>]
|
|
56
|
+
def copy_template_hash(parent, hash)
|
|
57
|
+
parent.assert_argument(Avm::EacAsciidoctorBase0::Sources::Document, 'parent')
|
|
58
|
+
hash.assert_argument(Hash, 'hash')
|
|
59
|
+
|
|
60
|
+
hash.map do |k, v|
|
|
61
|
+
r = copy_template_doc(parent, k)
|
|
62
|
+
copy_template_hash(r, v)
|
|
63
|
+
r
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# @return [Avm::EacAsciidoctorBase0::Instances::Build::Document]
|
|
68
|
+
def build_doc_child(build_doc, *path)
|
|
69
|
+
basename = path.shift.to_s
|
|
70
|
+
r = build_doc.child!(basename)
|
|
71
|
+
path.any? ? build_doc_child(r, *path) : r
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# @param source [String]
|
|
75
|
+
# @return [String]
|
|
76
|
+
def sanitize_body_source(source)
|
|
77
|
+
source.gsub(/^:docinfodir:\s*.+\s*$/, ':docinfodir: /docinfodir')
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
:docinfo: shared-head
|
|
2
|
+
:docinfodir: /docinfodir
|
|
3
|
+
= c1_1_1
|
|
4
|
+
The Author <theauthor@example.net>
|
|
5
|
+
:Author Initials: T.A.
|
|
6
|
+
:toc: left
|
|
7
|
+
:icons:
|
|
8
|
+
:numbered:
|
|
9
|
+
:source-highlighter: rouge
|
|
10
|
+
:website: https://www.example.net
|
|
11
|
+
|
|
12
|
+
[.normal]
|
|
13
|
+
link:../../../index.html[Home] » link:../../index.html[c1] » link:../index.html[c1_1] » link:index.html[c1_1_1]
|
|
14
|
+
|
|
15
|
+
== Child Documents
|
|
16
|
+
|
|
17
|
+
* link:c1_1_1_1/index.html[c1_1_1_1]
|
|
18
|
+
* link:c1_1_1_2/index.html[c1_1_1_2]
|
|
19
|
+
|
|
20
|
+
== First Section
|
|
21
|
+
|
|
22
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sapien.
|
|
23
|
+
|
|
24
|
+
== Second Section
|
|
25
|
+
|
|
26
|
+
Nam faucibus quis dui at laoreet. Pellentesque ut sapien est.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe Avm::EacAsciidoctorBase0::Instances::Build do
|
|
4
|
+
let(:app_director) { eac_asciidoctor_base0_stubs }
|
|
5
|
+
let(:fs_comparator) { EacFs::Comparator.new.truncate_file('*.html') }
|
|
6
|
+
let(:instance) { described_class.new(app_director.instance) }
|
|
7
|
+
|
|
8
|
+
include_examples 'source_target_fixtures', __FILE__ do
|
|
9
|
+
def source_data(source_file)
|
|
10
|
+
FileUtils.copy_entry(source_file, app_director.source.path)
|
|
11
|
+
instance.perform
|
|
12
|
+
fs_comparator.build(instance.target_directory)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def target_data(target_file)
|
|
16
|
+
fs_comparator.build(target_file.to_pathname)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<DATA>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<DATA>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
EacAsciidoctorBase0 Generated Source
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<DATA>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
EacAsciidoctorBase0 Generated Source
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
EacAsciidoctorBase0 Generated Source
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<DATA>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "https://darshandsoni.com/asciidoctor-skins/css/adoc-colony.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<DATA>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__TRUNCATED__
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<DATA>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__TRUNCATED__
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__TRUNCATED__
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__TRUNCATED__
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
EacAsciidoctorBase0 Generated Source
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "https://darshandsoni.com/asciidoctor-skins/css/adoc-colony.css";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe Avm::EacAsciidoctorBase0::Sources::Base do
|
|
4
|
+
include_examples 'in_avm_registry', 'sources'
|
|
5
|
+
|
|
6
|
+
describe '#instance' do
|
|
7
|
+
let(:source) { eac_asciidoctor_base0_stubs.source }
|
|
8
|
+
|
|
9
|
+
it do
|
|
10
|
+
expect(source.instance).to be_a(Avm::EacAsciidoctorBase0::Instances::Base)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_config/node'
|
|
4
|
+
require 'avm/applications/base'
|
|
5
|
+
require 'avm/instances/base'
|
|
6
|
+
require 'eac_ruby_utils/core_ext'
|
|
7
|
+
|
|
8
|
+
module EacAsciidoctorBase0Stubs
|
|
9
|
+
class Director
|
|
10
|
+
DEFAULT_APPLICATION_ID = 'myapp'
|
|
11
|
+
INSTANCE_ENTRY_KEYS = {
|
|
12
|
+
'install.name' => 'The Author',
|
|
13
|
+
'install.name_initials' => 'T.A.',
|
|
14
|
+
'install.email' => 'theauthor@example.net',
|
|
15
|
+
'web.url' => 'https://www.example.net'
|
|
16
|
+
}.freeze
|
|
17
|
+
|
|
18
|
+
enable_simple_cache
|
|
19
|
+
common_constructor :rspec_example, :application_id, default: [DEFAULT_APPLICATION_ID] do
|
|
20
|
+
source
|
|
21
|
+
application
|
|
22
|
+
instance
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
# @return [Avm::Applications::Base]
|
|
28
|
+
def application_uncached
|
|
29
|
+
r = ::Avm::Applications::Base.new(application_id)
|
|
30
|
+
r.entry('stereotype').write('EacAsciidoctorBase0')
|
|
31
|
+
r.local_source_path_entry.value = source.path.to_path
|
|
32
|
+
r
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# @return [Avm::EacAsciidoctorBase0::Instances::Base]
|
|
36
|
+
def instance_uncached
|
|
37
|
+
r = ::Avm::EacAsciidoctorBase0::Instances::Base.new(application, 'stub')
|
|
38
|
+
INSTANCE_ENTRY_KEYS.each { |k, v| r.entry(k).write(v) }
|
|
39
|
+
r
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @return [Avm::EacAsciidoctorBase0::Sources::Base]
|
|
43
|
+
def source_uncached
|
|
44
|
+
rspec_example.avm_source('EacAsciidoctorBase0', target_basename: application_id)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def eac_asciidoctor_base0_stubs(id = nil)
|
|
49
|
+
args = [self]
|
|
50
|
+
args << id if id.present?
|
|
51
|
+
::EacAsciidoctorBase0Stubs::Director.new(*args)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
EacRubyUtils::Rspec.default_setup.rspec_config.include(EacAsciidoctorBase0Stubs)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'avm/
|
|
3
|
+
require 'avm/eac_asciidoctor_base0'
|
|
4
4
|
require 'eac_ruby_gem_support'
|
|
5
5
|
EacRubyUtils::Rspec.default_setup_create(File.expand_path('..', __dir__))
|
|
6
|
-
|
|
6
|
+
.stub_avm_contexts
|
|
7
|
+
EacRubyUtils.require_sub __FILE__
|