eac_tools 0.111.1 → 0.113.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 +47 -48
- data/eac_tools.gemspec +6 -6
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm-eac_asciidoctor_base0/Gemfile +8 -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.rb +90 -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_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/version.rb +7 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0.rb +11 -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 +25 -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/_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/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/rubocop_spec.rb +3 -0
- data/sub/avm-eac_asciidoctor_base0/spec/spec_helper/eac_asciidoctor_base0_stubs.rb +55 -0
- data/sub/avm-eac_asciidoctor_base0/spec/spec_helper.rb +7 -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 +95 -22
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'asciidoctor'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module EacAsciidoctorBase0
|
|
7
|
+
module Sources
|
|
8
|
+
class Document
|
|
9
|
+
module Media
|
|
10
|
+
MEDIA_DIRECTORY_BASENAME = '_media'
|
|
11
|
+
|
|
12
|
+
def copy_media_directory_to(target_directory_path)
|
|
13
|
+
return unless media_directory.directory?
|
|
14
|
+
|
|
15
|
+
target_directory_path.parent.mkpath
|
|
16
|
+
::FileUtils.copy_entry(media_directory, target_directory_path)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @return [Pathname]
|
|
20
|
+
def media_directory
|
|
21
|
+
root_path.join(MEDIA_DIRECTORY_BASENAME)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -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(/^:stylesheet:\s*.+\s*$/, ':stylesheet: ../../../../theme/main.css')
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
:stylesheet: ../../../../theme/main.css
|
|
2
|
+
= c1_1_1
|
|
3
|
+
The Author <theauthor@example.net>
|
|
4
|
+
:Author Initials: T.A.
|
|
5
|
+
:toc: left
|
|
6
|
+
:icons:
|
|
7
|
+
:numbered:
|
|
8
|
+
:source-highlighter: rouge
|
|
9
|
+
:website: https://www.example.net
|
|
10
|
+
|
|
11
|
+
[.normal]
|
|
12
|
+
link:../../../index.html[Home] » link:../../index.html[c1] » link:../index.html[c1_1] » link:index.html[c1_1_1]
|
|
13
|
+
|
|
14
|
+
== Child Documents
|
|
15
|
+
|
|
16
|
+
* link:c1_1_1_1/index.html[c1_1_1_1]
|
|
17
|
+
* link:c1_1_1_2/index.html[c1_1_1_2]
|
|
18
|
+
|
|
19
|
+
== First Section
|
|
20
|
+
|
|
21
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sapien.
|
|
22
|
+
|
|
23
|
+
== Second Section
|
|
24
|
+
|
|
25
|
+
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
|
|
@@ -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__
|
|
@@ -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
|