eac_tools 0.41.0 → 0.42.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +23 -23
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm/avm.gemspec +4 -4
- data/sub/avm/lib/avm/applications/base.rb +24 -3
- data/sub/avm/lib/avm/entries/entry.rb +5 -0
- data/sub/avm/lib/avm/instances/base.rb +5 -12
- data/sub/avm/lib/avm/instances/ids.rb +30 -0
- data/sub/avm/lib/avm/rspec/setup.rb +8 -0
- data/sub/avm/lib/avm/sources/base/instance.rb +2 -14
- data/sub/avm/lib/avm/version.rb +1 -1
- data/sub/avm/spec/spec_helper.rb +1 -1
- data/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +1 -1
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/base.rb +18 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/header_macro_value.rb +59 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb +50 -0
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/{sources → instances}/build/document.rb +11 -11
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/{sources → instances}/build.rb +8 -3
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/deploy.rb +3 -3
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/build.rb +5 -3
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/version.rb +1 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec.rb +32 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec_files/pre_processed_root_body.adoc +15 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec.rb +44 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/{sources → instances}/build_spec_files/doc1.html +0 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/{sources → instances}/build_spec_files/doc2/doc2_1.html +0 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/{sources → instances}/build_spec_files/doc2.html +0 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/{sources → instances}/build_spec_files/index.html +0 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/body.adoc +1 -0
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/sources/base_spec.rb +14 -0
- data/sub/avm-eac_asciidoctor_base0/spec/spec_helper.rb +1 -4
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/body.adoc +1 -0
- data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +2 -2
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/dependencies.rb +27 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/gemfile_lock.rb +27 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/options.rb +30 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base/version_builder.rb +52 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base.rb +1 -66
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/source_generators/base_spec.rb +2 -1
- data/sub/eac_cli/eac_cli.gemspec +2 -2
- data/sub/eac_cli/lib/eac_cli/config/entry.rb +4 -0
- data/sub/eac_cli/lib/eac_cli/version.rb +1 -1
- data/sub/eac_config/eac_config.gemspec +2 -2
- data/sub/eac_config/lib/eac_config/entry/not_found_error.rb +13 -0
- data/sub/eac_config/lib/eac_config/entry.rb +7 -0
- data/sub/eac_config/lib/eac_config/version.rb +1 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup.rb +9 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb +15 -6
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb +5 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb +9 -2
- metadata +27 -29
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/sources/build_spec.rb +0 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cc7fffb0a2dc335ea8d9bb791d3aac22b783dbf2556d7812ece97708fee0be9
|
4
|
+
data.tar.gz: 23081d70c8762bca09ee9389b361f3b0fed45f30a09c7649f9caaf28948559f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10510fc8717ce648a96da24ca0796ac2bc0f4b57424dc7efad470b86cd71585b3fbf8dd9df03818a6b4f2d739accc8f7758925d65f9bbfdf04dec360bf82fca4
|
7
|
+
data.tar.gz: 17442df47bb3b1944d1ce2a4b0b976aaf36edb54e6c13aad74655fc32295159caa5e31835a08b2853ea63b4db2f5311f6823af588ec2b649ca3d27f4a1dd0ea0
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
eac_tools (0.
|
5
|
-
avm (~> 0.
|
6
|
-
avm-eac_asciidoctor_base0 (~> 0.
|
4
|
+
eac_tools (0.42.0)
|
5
|
+
avm (~> 0.55)
|
6
|
+
avm-eac_asciidoctor_base0 (~> 0.10)
|
7
7
|
avm-eac_generic_base0 (~> 0.8)
|
8
8
|
avm-eac_latex_base0 (~> 0.3)
|
9
9
|
avm-eac_php_base0 (~> 0.3)
|
@@ -11,11 +11,11 @@ PATH
|
|
11
11
|
avm-eac_rails_base1 (~> 0.7)
|
12
12
|
avm-eac_redmine_base0 (~> 0.16)
|
13
13
|
avm-eac_redmine_plugin_base0 (~> 0.3)
|
14
|
-
avm-eac_ruby_base1 (~> 0.
|
14
|
+
avm-eac_ruby_base1 (~> 0.27)
|
15
15
|
avm-eac_webapp_base0 (~> 0.12, >= 0.12.2)
|
16
16
|
avm-eac_wordpress_base0 (~> 0.2, >= 0.2.1)
|
17
17
|
avm-tools (~> 0.142, >= 0.142.4)
|
18
|
-
eac_ruby_utils (~> 0.
|
18
|
+
eac_ruby_utils (~> 0.107)
|
19
19
|
|
20
20
|
PATH
|
21
21
|
remote: sub/aranha-parsers
|
@@ -33,10 +33,10 @@ PATH
|
|
33
33
|
PATH
|
34
34
|
remote: sub/avm-eac_asciidoctor_base0
|
35
35
|
specs:
|
36
|
-
avm-eac_asciidoctor_base0 (0.
|
36
|
+
avm-eac_asciidoctor_base0 (0.10.0)
|
37
37
|
asciidoctor (~> 2.0, >= 2.0.18)
|
38
38
|
avm-eac_webapp_base0 (~> 0.12, >= 0.12.2)
|
39
|
-
eac_ruby_utils (~> 0.
|
39
|
+
eac_ruby_utils (~> 0.107)
|
40
40
|
os (~> 1.1, >= 1.1.4)
|
41
41
|
rouge (~> 3.30)
|
42
42
|
|
@@ -108,10 +108,10 @@ PATH
|
|
108
108
|
PATH
|
109
109
|
remote: sub/avm-eac_ruby_base1
|
110
110
|
specs:
|
111
|
-
avm-eac_ruby_base1 (0.
|
112
|
-
avm (~> 0.
|
111
|
+
avm-eac_ruby_base1 (0.27.0)
|
112
|
+
avm (~> 0.55)
|
113
113
|
avm-eac_generic_base0 (~> 0.8)
|
114
|
-
eac_ruby_utils (~> 0.
|
114
|
+
eac_ruby_utils (~> 0.107)
|
115
115
|
|
116
116
|
PATH
|
117
117
|
remote: sub/avm-eac_webapp_base0
|
@@ -173,14 +173,14 @@ PATH
|
|
173
173
|
PATH
|
174
174
|
remote: sub/avm
|
175
175
|
specs:
|
176
|
-
avm (0.
|
176
|
+
avm (0.55.0)
|
177
177
|
aranha-parsers (~> 0.14, >= 0.14.4)
|
178
|
-
eac_cli (~> 0.
|
179
|
-
eac_config (~> 0.
|
178
|
+
eac_cli (~> 0.29)
|
179
|
+
eac_config (~> 0.12)
|
180
180
|
eac_docker (~> 0.5)
|
181
|
-
eac_fs (~> 0.
|
181
|
+
eac_fs (~> 0.14)
|
182
182
|
eac_git (~> 0.13)
|
183
|
-
eac_ruby_utils (~> 0.
|
183
|
+
eac_ruby_utils (~> 0.107)
|
184
184
|
eac_templates (~> 0.3, >= 0.3.2)
|
185
185
|
filesize (~> 0.2)
|
186
186
|
htmlbeautifier (~> 1.4, >= 1.4.2)
|
@@ -189,17 +189,17 @@ PATH
|
|
189
189
|
PATH
|
190
190
|
remote: sub/eac_cli
|
191
191
|
specs:
|
192
|
-
eac_cli (0.
|
192
|
+
eac_cli (0.29.0)
|
193
193
|
colorize (~> 0.8, >= 0.8.1)
|
194
|
-
eac_config (~> 0.
|
195
|
-
eac_ruby_utils (~> 0.
|
194
|
+
eac_config (~> 0.12)
|
195
|
+
eac_ruby_utils (~> 0.107)
|
196
196
|
|
197
197
|
PATH
|
198
198
|
remote: sub/eac_config
|
199
199
|
specs:
|
200
|
-
eac_config (0.
|
201
|
-
addressable (~> 2.8)
|
202
|
-
eac_ruby_utils (~> 0.
|
200
|
+
eac_config (0.12.0)
|
201
|
+
addressable (~> 2.8, >= 2.8.1)
|
202
|
+
eac_ruby_utils (~> 0.107)
|
203
203
|
|
204
204
|
PATH
|
205
205
|
remote: sub/eac_docker
|
@@ -235,7 +235,7 @@ PATH
|
|
235
235
|
PATH
|
236
236
|
remote: sub/eac_ruby_utils
|
237
237
|
specs:
|
238
|
-
eac_ruby_utils (0.
|
238
|
+
eac_ruby_utils (0.107.0)
|
239
239
|
activesupport (>= 4, < 7)
|
240
240
|
addressable (~> 2.8, >= 2.8.1)
|
241
241
|
bundler
|
@@ -370,7 +370,7 @@ GEM
|
|
370
370
|
tzinfo (2.0.5)
|
371
371
|
concurrent-ruby (~> 1.0)
|
372
372
|
unicode-display_width (1.6.1)
|
373
|
-
zeitwerk (2.6.
|
373
|
+
zeitwerk (2.6.4)
|
374
374
|
zlib (2.1.1)
|
375
375
|
|
376
376
|
PLATFORMS
|
data/lib/eac_tools/version.rb
CHANGED
data/sub/avm/avm.gemspec
CHANGED
@@ -13,12 +13,12 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
14
14
|
|
15
15
|
s.add_dependency 'aranha-parsers', '~> 0.14', '>= 0.14.4'
|
16
|
-
s.add_dependency 'eac_cli', '~> 0.
|
17
|
-
s.add_dependency 'eac_config', '~> 0.
|
16
|
+
s.add_dependency 'eac_cli', '~> 0.29'
|
17
|
+
s.add_dependency 'eac_config', '~> 0.12'
|
18
18
|
s.add_dependency 'eac_docker', '~> 0.5'
|
19
|
-
s.add_dependency 'eac_fs', '~> 0.
|
19
|
+
s.add_dependency 'eac_fs', '~> 0.14'
|
20
20
|
s.add_dependency 'eac_git', '~> 0.13'
|
21
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
21
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.107'
|
22
22
|
s.add_dependency 'eac_templates', '~> 0.3', '>= 0.3.2'
|
23
23
|
s.add_dependency 'filesize', '~> 0.2'
|
24
24
|
s.add_dependency 'htmlbeautifier', '~> 1.4', '>= 1.4.2'
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avm/entries/base'
|
4
|
+
require 'avm/instances/ids'
|
4
5
|
require 'avm/registry'
|
5
6
|
require 'eac_ruby_utils/core_ext'
|
6
7
|
|
@@ -22,23 +23,43 @@ module Avm
|
|
22
23
|
end
|
23
24
|
|
24
25
|
def instance(suffix)
|
25
|
-
|
26
|
+
stereotype.instance_class.new(self, suffix)
|
26
27
|
end
|
27
28
|
|
28
29
|
def name
|
29
30
|
entry(::Avm::Instances::EntryKeys::NAME).read
|
30
31
|
end
|
31
32
|
|
33
|
+
# @return [String]
|
34
|
+
def local_instance_id
|
35
|
+
::Avm::Instances::Ids.build(id, local_instance_suffix)
|
36
|
+
end
|
37
|
+
|
38
|
+
# @return [Pathname]
|
39
|
+
def local_source_path
|
40
|
+
local_source_path_entry.value!.to_pathname
|
41
|
+
end
|
42
|
+
|
43
|
+
# @return [EacConfig::Entry]
|
44
|
+
def local_source_path_entry
|
45
|
+
::EacConfig::Node.context.current.entry([local_instance_id, 'install', 'path'])
|
46
|
+
end
|
47
|
+
|
48
|
+
# @return [String]
|
49
|
+
def local_instance_suffix
|
50
|
+
LOCAL_INSTANCE_SUFFIX
|
51
|
+
end
|
52
|
+
|
32
53
|
private
|
33
54
|
|
34
55
|
# @return [Avm::Instances::Base]
|
35
56
|
def local_instance_uncached
|
36
|
-
instance(
|
57
|
+
instance(local_instance_suffix)
|
37
58
|
end
|
38
59
|
|
39
60
|
# @return [Avm::Sources::Base]
|
40
61
|
def local_source_uncached
|
41
|
-
::Avm::Registry.sources.detect(
|
62
|
+
::Avm::Registry.sources.detect(local_source_path)
|
42
63
|
end
|
43
64
|
end
|
44
65
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'avm/instances/ids'
|
3
4
|
require 'avm/with/application_stereotype'
|
4
5
|
require 'avm/with/extra_subcommands'
|
5
6
|
require 'eac_ruby_utils/require_sub'
|
@@ -23,18 +24,9 @@ module Avm
|
|
23
24
|
|
24
25
|
class << self
|
25
26
|
def by_id(id)
|
26
|
-
|
27
|
+
parsed_id = ::Avm::Instances::Ids.parse!(id)
|
27
28
|
require 'avm/applications/base'
|
28
|
-
new(::Avm::Applications::Base.new(application_id),
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def parse_id(id)
|
34
|
-
m = ID_PATTERN.match(id)
|
35
|
-
return [m[1], m[2]] if m
|
36
|
-
|
37
|
-
raise "ID Pattern no matched: \"#{id}\""
|
29
|
+
new(::Avm::Applications::Base.new(parsed_id.application_id), parsed_id.instance_suffix)
|
38
30
|
end
|
39
31
|
end
|
40
32
|
|
@@ -42,8 +34,9 @@ module Avm
|
|
42
34
|
self.suffix = suffix.to_s
|
43
35
|
end
|
44
36
|
|
37
|
+
# @return [String]
|
45
38
|
def id
|
46
|
-
|
39
|
+
::Avm::Instances::Ids.build(application.id, suffix)
|
47
40
|
end
|
48
41
|
|
49
42
|
def to_s
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Instances
|
7
|
+
module Ids
|
8
|
+
ID_PARTS_SEPARATOR = '_'
|
9
|
+
ID_PATTERN = /\A([a-z0-9]+(?:\-[a-z0-9]+)*)_(.+)\z/.freeze
|
10
|
+
ID_PARSER = ID_PATTERN.to_parser do |m|
|
11
|
+
::Struct.new(:application_id, :instance_suffix).new(m[1], m[2])
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# @param application_id [String]
|
16
|
+
# @param instance_suffix [String]
|
17
|
+
# @return [String]
|
18
|
+
def build(application_id, instance_suffix)
|
19
|
+
[application_id, instance_suffix].join(ID_PARTS_SEPARATOR)
|
20
|
+
end
|
21
|
+
|
22
|
+
# @param id [String]
|
23
|
+
# @return [String]
|
24
|
+
def parse!(id)
|
25
|
+
ID_PARSER.parse!(id)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -7,20 +7,8 @@ module Avm
|
|
7
7
|
module Sources
|
8
8
|
class Base
|
9
9
|
module Instance
|
10
|
-
|
11
|
-
|
12
|
-
def instance_suffix
|
13
|
-
DEFAULT_INSTANCE_SUFFIX
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def application_uncached
|
19
|
-
::Avm::Applications::Base.new(path.basename)
|
20
|
-
end
|
21
|
-
|
22
|
-
def instance_uncached
|
23
|
-
::Avm::Instances::Base.new(application, DEFAULT_INSTANCE_SUFFIX)
|
10
|
+
def instance
|
11
|
+
application.local_instance
|
24
12
|
end
|
25
13
|
end
|
26
14
|
end
|
data/sub/avm/lib/avm/version.rb
CHANGED
data/sub/avm/spec/spec_helper.rb
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
|
15
15
|
s.add_dependency 'asciidoctor', '~> 2.0', '>= 2.0.18'
|
16
16
|
s.add_dependency 'avm-eac_webapp_base0', '~> 0.12', '>= 0.12.2'
|
17
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
17
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.107'
|
18
18
|
s.add_dependency 'os', '~> 1.1', '>= 1.1.4'
|
19
19
|
s.add_dependency 'rouge', '~> 3.30'
|
20
20
|
|
@@ -10,6 +10,24 @@ module Avm
|
|
10
10
|
module Instances
|
11
11
|
class Base < ::Avm::EacWebappBase0::Instances::Base
|
12
12
|
FILES_UNITS = {}.freeze
|
13
|
+
AUTHOR_EMAIL_ENTRY_PATH = 'install.email'
|
14
|
+
AUTHOR_NAME_ENTRY_PATH = 'install.name'
|
15
|
+
AUTHOR_NAME_INITIALS_ENTRY_PATH = 'install.name_initials'
|
16
|
+
|
17
|
+
# @return [String]
|
18
|
+
def author_email
|
19
|
+
entry(AUTHOR_EMAIL_ENTRY_PATH).value!
|
20
|
+
end
|
21
|
+
|
22
|
+
# @return [String]
|
23
|
+
def author_name
|
24
|
+
entry(AUTHOR_NAME_ENTRY_PATH).value!
|
25
|
+
end
|
26
|
+
|
27
|
+
# @return [String]
|
28
|
+
def author_name_initials
|
29
|
+
entry(AUTHOR_NAME_INITIALS_ENTRY_PATH).value!
|
30
|
+
end
|
13
31
|
end
|
14
32
|
end
|
15
33
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacAsciidoctorBase0
|
7
|
+
module Instances
|
8
|
+
class Build
|
9
|
+
class Document
|
10
|
+
class HeaderMacroValue
|
11
|
+
enable_method_class
|
12
|
+
enable_settings_provider
|
13
|
+
enable_simple_cache
|
14
|
+
common_constructor :document
|
15
|
+
|
16
|
+
delegate :build, to: :document
|
17
|
+
delegate :instance, to: :build
|
18
|
+
delegate :author_email, :author_name, to: :instance
|
19
|
+
|
20
|
+
ATTRIBUTES = ['Author Initials', 'toc', 'icons', 'numbered', 'website'].freeze
|
21
|
+
TOC = 'left'
|
22
|
+
ICONS = ''
|
23
|
+
NUMBERED = ''
|
24
|
+
|
25
|
+
def attributes_lines
|
26
|
+
ATTRIBUTES.map do |attr|
|
27
|
+
[":#{attr}:", attribute_value(attr)].reject(&:blank?).join(' ')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def attribute_value(attr)
|
32
|
+
setting_value(attr.variableize)
|
33
|
+
end
|
34
|
+
|
35
|
+
def author_initials
|
36
|
+
instance.author_name_initials
|
37
|
+
end
|
38
|
+
|
39
|
+
def author_line
|
40
|
+
"#{author_name} <#{author_email}>"
|
41
|
+
end
|
42
|
+
|
43
|
+
def result
|
44
|
+
result_lines.join("\n")
|
45
|
+
end
|
46
|
+
|
47
|
+
def result_lines
|
48
|
+
[author_line] + attributes_lines
|
49
|
+
end
|
50
|
+
|
51
|
+
def website
|
52
|
+
instance.web_url
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacAsciidoctorBase0
|
7
|
+
module Instances
|
8
|
+
class Build
|
9
|
+
class Document
|
10
|
+
class PreProcessLine
|
11
|
+
enable_method_class
|
12
|
+
enable_simple_cache
|
13
|
+
|
14
|
+
MACRO_PARSER = %r{\A\s*//\#(\S+.*)}.to_parser do |m|
|
15
|
+
m[1]
|
16
|
+
end
|
17
|
+
|
18
|
+
common_constructor :document, :line
|
19
|
+
|
20
|
+
def result
|
21
|
+
if macro?
|
22
|
+
macro_value
|
23
|
+
else
|
24
|
+
line
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def macro?
|
29
|
+
macro_name.present?
|
30
|
+
end
|
31
|
+
|
32
|
+
def macro_parser
|
33
|
+
MACRO_PARSER
|
34
|
+
end
|
35
|
+
|
36
|
+
def macro_value
|
37
|
+
document.send("#{macro_name}_macro_value")
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def macro_name_uncached
|
43
|
+
macro_parser.parse(line)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -1,12 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'asciidoctor'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
4
5
|
|
5
6
|
module Avm
|
6
7
|
module EacAsciidoctorBase0
|
7
|
-
module
|
8
|
+
module Instances
|
8
9
|
class Build
|
9
10
|
class Document
|
11
|
+
require_sub __FILE__
|
12
|
+
|
10
13
|
ROOT_BODY_TARGET_BASENAME = 'index'
|
11
14
|
|
12
15
|
enable_simple_cache
|
@@ -31,14 +34,6 @@ module Avm
|
|
31
34
|
).basename_sub('.*') { |b| "#{b}.html" }
|
32
35
|
end
|
33
36
|
|
34
|
-
def mydebug
|
35
|
-
root_source_path.print_debug(title: 'Document')
|
36
|
-
children.count.print_debug(label: 'children.count')
|
37
|
-
body_source_path.print_debug(label: 'body_source')
|
38
|
-
body_source_path.file?.print_debug(label: 'body_source.file?')
|
39
|
-
body_target_path.print_debug(label: 'body_target')
|
40
|
-
end
|
41
|
-
|
42
37
|
def perform
|
43
38
|
perform_self
|
44
39
|
perform_children
|
@@ -46,8 +41,8 @@ module Avm
|
|
46
41
|
|
47
42
|
def perform_self
|
48
43
|
infov 'Building', root_source_path
|
49
|
-
::Asciidoctor.
|
50
|
-
|
44
|
+
::Asciidoctor.convert(
|
45
|
+
pre_processed_body_source_content,
|
51
46
|
to_file: body_target_path.to_path, safe: :unsafe, mkdirs: true
|
52
47
|
)
|
53
48
|
end
|
@@ -56,6 +51,11 @@ module Avm
|
|
56
51
|
children.each(&:perform)
|
57
52
|
end
|
58
53
|
|
54
|
+
# @return [String]
|
55
|
+
def pre_processed_body_source_content
|
56
|
+
body_source_path.read.each_line.map { |line| pre_process_line(line.rstrip) + "\n" }.join
|
57
|
+
end
|
58
|
+
|
59
59
|
def tree_documents_count
|
60
60
|
children.inject(1) { |a, e| a + e.tree_documents_count }
|
61
61
|
end
|
data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/{sources → instances}/build.rb
RENAMED
@@ -5,14 +5,14 @@ require 'eac_ruby_utils/fs/clearable_directory'
|
|
5
5
|
|
6
6
|
module Avm
|
7
7
|
module EacAsciidoctorBase0
|
8
|
-
module
|
8
|
+
module Instances
|
9
9
|
class Build
|
10
10
|
require_sub __FILE__
|
11
11
|
enable_speaker
|
12
12
|
enable_simple_cache
|
13
13
|
enable_listable
|
14
14
|
lists.add_symbol :option, :target_directory
|
15
|
-
common_constructor :
|
15
|
+
common_constructor :instance, :options, default: [{}] do
|
16
16
|
self.options = self.class.lists.option.hash_keys_validate!(options.symbolize_keys)
|
17
17
|
end
|
18
18
|
|
@@ -29,7 +29,12 @@ module Avm
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def root_document
|
32
|
-
::Avm::EacAsciidoctorBase0::
|
32
|
+
::Avm::EacAsciidoctorBase0::Instances::Build::Document.new(self, nil, nil)
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [Avm::EacAsciidoctorBase0::Sources::Base]
|
36
|
+
def source
|
37
|
+
instance.application.local_source
|
33
38
|
end
|
34
39
|
|
35
40
|
def target_directory
|
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
require 'avm/eac_webapp_base0/instances/deploy'
|
4
4
|
require 'avm/eac_asciidoctor_base0/sources/base'
|
5
|
-
require 'avm/eac_asciidoctor_base0/
|
5
|
+
require 'avm/eac_asciidoctor_base0/instances/build'
|
6
6
|
|
7
7
|
module Avm
|
8
8
|
module EacAsciidoctorBase0
|
9
9
|
module Instances
|
10
10
|
class Deploy < ::Avm::EacWebappBase0::Instances::Deploy
|
11
11
|
def build_content
|
12
|
-
::Avm::EacAsciidoctorBase0::
|
12
|
+
::Avm::EacAsciidoctorBase0::Instances::Build.new(
|
13
13
|
project,
|
14
|
-
::Avm::EacAsciidoctorBase0::
|
14
|
+
::Avm::EacAsciidoctorBase0::Instances::Build::OPTION_TARGET_DIRECTORY => build_dir
|
15
15
|
).perform
|
16
16
|
end
|
17
17
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/eac_asciidoctor_base0/
|
3
|
+
require 'avm/eac_asciidoctor_base0/instances/build'
|
4
4
|
require 'eac_cli/core_ext'
|
5
5
|
require 'os'
|
6
6
|
|
@@ -24,8 +24,10 @@ module Avm
|
|
24
24
|
private
|
25
25
|
|
26
26
|
def build_uncached
|
27
|
-
::Avm::EacAsciidoctorBase0::
|
28
|
-
|
27
|
+
::Avm::EacAsciidoctorBase0::Instances::Build.new(
|
28
|
+
runner_context.call(:source).instance,
|
29
|
+
target_directory: parsed.target_dir
|
30
|
+
)
|
29
31
|
end
|
30
32
|
|
31
33
|
def default_target_directory
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_asciidoctor_base0/sources/base'
|
4
|
+
require 'avm/eac_asciidoctor_base0/instances/build'
|
5
|
+
|
6
|
+
::RSpec.describe ::Avm::EacAsciidoctorBase0::Instances::Build::Document do
|
7
|
+
let(:application) { ::Avm::Applications::Base.new('myapp') }
|
8
|
+
let(:application_instance) do
|
9
|
+
::Avm::EacAsciidoctorBase0::Instances::Base
|
10
|
+
.new(application, 'stub')
|
11
|
+
end
|
12
|
+
let(:build) { ::Avm::EacAsciidoctorBase0::Instances::Build.new(application_instance) }
|
13
|
+
let(:fixtures_dir) { __dir__.to_pathname.join('document_spec_files') }
|
14
|
+
let(:instance) { build.root_document }
|
15
|
+
let(:source) { avm_source('EacAsciidoctorBase0', target_basename: application.id) }
|
16
|
+
let(:target_file) { fixtures_dir.join('pre_processed_root_body.adoc') }
|
17
|
+
|
18
|
+
before do
|
19
|
+
application.entry('stereotype').write('EacAsciidoctorBase0')
|
20
|
+
::EacConfig::Node.context.current.entry("#{application.id}_dev.install.path")
|
21
|
+
.value = source.path.to_path
|
22
|
+
application_instance.entry('install.path').write(source.path.to_path)
|
23
|
+
application_instance.entry('install.name').write('The Author')
|
24
|
+
application_instance.entry('install.name_initials').write('T.A.')
|
25
|
+
application_instance.entry('install.email').write('theauthor@example.net')
|
26
|
+
application_instance.entry('web.url').write('https://www.example.net')
|
27
|
+
end
|
28
|
+
|
29
|
+
it do
|
30
|
+
expect(instance.pre_processed_body_source_content).to eq(target_file.read)
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
= EacAsciidoctorBase0 Generated Source =
|
2
|
+
The Author <theauthor@example.net>
|
3
|
+
:Author Initials: T.A.
|
4
|
+
:toc: left
|
5
|
+
:icons:
|
6
|
+
:numbered:
|
7
|
+
:website: https://www.example.net
|
8
|
+
|
9
|
+
== First Section
|
10
|
+
|
11
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sapien.
|
12
|
+
|
13
|
+
== Second Section
|
14
|
+
|
15
|
+
Nam faucibus quis dui at laoreet. Pellentesque ut sapien est.
|