Class: Avm::EacAsciidoctorBase0::Instances::Build::Document
- Inherits:
-
Object
- Object
- Avm::EacAsciidoctorBase0::Instances::Build::Document
show all
- Defined in:
- lib/avm/eac_asciidoctor_base0/instances/build/document.rb,
lib/avm/eac_asciidoctor_base0/instances/build/document/media.rb,
lib/avm/eac_asciidoctor_base0/instances/build/document/header_lines.rb,
lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
Defined Under Namespace
Modules: Media
Classes: HeaderLines, PreProcessLine
Constant Summary
collapse
- BODY_TARGET_BASENAME =
'index.html'
Instance Method Summary
collapse
Instance Method Details
#body_source_lines ⇒ Enumerable<String>
27
28
29
30
31
32
33
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 27
def body_source_lines
if source_document.body_path.file?
source_document.body_path.read.each_line
else
default_body_source_lines
end
end
|
#body_target_path ⇒ Pathname
Absolute path to the output of Asciidoctor’s source file.
38
39
40
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 38
def body_target_path
build.target_directory.join(source_document.subpath).join(BODY_TARGET_BASENAME)
end
|
#build_body ⇒ Asciidoctor::Document
43
44
45
46
47
48
49
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 43
def build_body
::Asciidoctor.convert(
pre_processed_body_source_content,
base_dir: convert_base_dir,
to_file: body_target_path.to_path, safe: :unsafe, mkdirs: true
)
end
|
53
54
55
56
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 53
def child(basename)
basename = basename.to_s
children.find { |c| c.source_document.root_path.basename.to_path == basename }
end
|
60
61
62
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 60
def child!(basename)
child(basename) || raise("Child not found with basename \"#{basename}\"")
end
|
#convert_base_dir ⇒ Pathname
65
66
67
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 65
def convert_base_dir
source_document.root_path
end
|
#default_body_source_lines ⇒ Enumerable<String>
70
71
72
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 70
def default_body_source_lines
macro_lines(:default_body)
end
|
#href_to_other_body(other) ⇒ String
22
23
24
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 22
def href_to_other_body(other)
other.body_target_path.relative_path_from(body_target_path.dirname)
end
|
#macro_lines(name, arguments = []) ⇒ Array<String>
76
77
78
79
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 76
def macro_lines(name, arguments = [])
::Avm::EacAsciidoctorBase0::Instances::Macros.const_get(name.to_s.camelize)
.new(self, arguments).result
end
|
81
82
83
84
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 81
def perform
perform_self
perform_children
end
|
92
93
94
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 92
def perform_children
children.each(&:perform)
end
|
86
87
88
89
90
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 86
def perform_self
infov 'Building', source_document.subpath
build_body
copy_media_directory
end
|
#pre_processed_body_source_content ⇒ String
97
98
99
100
101
102
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 97
def pre_processed_body_source_content
(
+ [''] + body_source_lines
.flat_map { |line| pre_process_line(line.rstrip) }
).map { |line| "#{line.rstrip}\n" }.join
end
|
#tree_documents_count ⇒ Object
104
105
106
|
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document.rb', line 104
def tree_documents_count
children.inject(1) { |a, e| a + e.tree_documents_count }
end
|