eac_tools 0.97.0 → 0.97.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +15 -15
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm-eac_rails_base1/avm-eac_rails_base1.gemspec +22 -0
  5. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/apache_base.rb +16 -0
  6. data/sub/{avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0 → avm-eac_rails_base1/lib/avm/eac_rails_base1}/instances/apache_host.rb +4 -5
  7. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/apache_path.rb +21 -0
  8. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/base.rb +50 -0
  9. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/deploy.rb +23 -0
  10. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/processes/daemon.rb +39 -0
  11. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/processes/tasks_scheduler.rb +27 -0
  12. data/sub/{avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros.rb → avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/processes.rb} +2 -2
  13. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/bundle.rb +28 -0
  14. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/code_runner.rb +28 -0
  15. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/log.rb +45 -0
  16. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/logs/clear.rb +27 -0
  17. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/logs.rb +19 -0
  18. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/rails_server.rb +34 -0
  19. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/tasks_scheduler/systemd_unit.rb +48 -0
  20. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/tasks_scheduler.rb +19 -0
  21. data/sub/{avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources → avm-eac_rails_base1/lib/avm/eac_rails_base1/instances}/runners.rb +2 -2
  22. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/systemd_unit/service.rb +72 -0
  23. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler_command.rb +31 -0
  24. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/systemd_unit.rb +59 -0
  25. data/sub/{avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0 → avm-eac_rails_base1/lib/avm/eac_rails_base1}/instances.rb +1 -1
  26. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner_with/bundle.rb +27 -0
  27. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner_with/rails_environment.rb +47 -0
  28. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/sources/base.rb +43 -0
  29. data/sub/{avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0 → avm-eac_rails_base1/lib/avm/eac_rails_base1}/version.rb +2 -2
  30. data/sub/{avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0.rb → avm-eac_rails_base1/lib/avm/eac_rails_base1.rb} +1 -1
  31. data/sub/{avm-eac_asciidoctor_base0 → avm-eac_rails_base1}/spec/spec_helper.rb +0 -4
  32. data/sub/avm-eac_rails_base1/template/avm/eac_rails_base1/instances/apache_path/extra_content.conf +5 -0
  33. data/sub/avm-eac_rails_base1/template/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler.service +12 -0
  34. data/sub/avm-eac_rails_base1/template/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler_command.sh +6 -0
  35. metadata +37 -79
  36. data/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +0 -24
  37. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/documents_owner.rb +0 -30
  38. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/file_formats/base/file_resource_name.rb +0 -37
  39. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/file_formats/base.rb +0 -17
  40. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/apache_path.rb +0 -12
  41. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/base.rb +0 -33
  42. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/body_target.rb +0 -37
  43. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/header_lines.rb +0 -92
  44. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/media.rb +0 -28
  45. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb +0 -64
  46. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document.rb +0 -101
  47. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/theme.rb +0 -41
  48. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build.rb +0 -60
  49. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/deploy.rb +0 -28
  50. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/base.rb +0 -21
  51. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb +0 -55
  52. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/child_docs/document_builder.rb +0 -63
  53. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/child_docs.rb +0 -35
  54. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/default_body.rb +0 -21
  55. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging/catcher.rb +0 -47
  56. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging/error.rb +0 -18
  57. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging.rb +0 -11
  58. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/source_generators/base.rb +0 -28
  59. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/source_generators.rb +0 -11
  60. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base/instance_to_build.rb +0 -45
  61. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base/theme.rb +0 -46
  62. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base.rb +0 -49
  63. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document/media.rb +0 -28
  64. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document/title.rb +0 -31
  65. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document.rb +0 -56
  66. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/build.rb +0 -58
  67. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document/build.rb +0 -51
  68. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document.rb +0 -30
  69. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/documents.rb +0 -28
  70. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/ignore_errors_option.rb +0 -44
  71. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources.rb +0 -11
  72. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/file_formats/base_spec.rb +0 -13
  73. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec.rb +0 -81
  74. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec_files/pre_processed_root_body.adoc +0 -25
  75. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec.rb +0 -22
  76. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/_media/a_media_file +0 -1
  77. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/_media/a_media_file +0 -1
  78. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/body.adoc +0 -11
  79. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/title +0 -1
  80. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/body.adoc +0 -11
  81. 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 +0 -1
  82. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/body.adoc +0 -11
  83. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/title +0 -1
  84. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/title +0 -1
  85. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_media/a_media_file +0 -1
  86. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_theme/main.css +0 -1
  87. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/_media/a_media_file +0 -1
  88. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/index.html +0 -1
  89. 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 +0 -1
  90. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/doc2_1/index.html +0 -1
  91. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/index.html +0 -1
  92. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/index.html +0 -1
  93. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec.rb +0 -8
  94. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/body.adoc +0 -11
  95. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/title +0 -1
  96. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/theme/main.css +0 -1
  97. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/sources/base_spec.rb +0 -16
  98. data/sub/avm-eac_asciidoctor_base0/spec/spec_helper/eac_asciidoctor_base0_stubs.rb +0 -55
  99. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/body.adoc +0 -11
  100. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/title +0 -1
  101. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/theme/main.css +0 -1
  102. /data/sub/{avm-eac_asciidoctor_base0 → avm-eac_rails_base1}/Gemfile +0 -0
  103. /data/sub/{avm-eac_asciidoctor_base0 → avm-eac_rails_base1}/spec/rubocop_spec.rb +0 -0
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/source_generators/base'
4
- require 'eac_templates/core_ext'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module Avm
8
- module EacAsciidoctorBase0
9
- module SourceGenerators
10
- class Base < ::Avm::SourceGenerators::Base
11
- OPTIONS = {}.freeze
12
-
13
- enable_speaker
14
- enable_simple_cache
15
-
16
- class << self
17
- def option_list
18
- OPTIONS.inject(super) { |a, e| a.option(*e) }
19
- end
20
- end
21
-
22
- def perform
23
- template.apply(self, target_path)
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module EacAsciidoctorBase0
7
- module SourceGenerators
8
- require_sub __FILE__
9
- end
10
- end
11
- end
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'asciidoctor'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Sources
9
- class Base
10
- class InstanceToBuild
11
- AUTHOR_EMAIL = 'author@local.net'
12
- AUTHOR_NAME = 'Local Author'
13
- AUTHOR_NAME_INITIALS = 'L.A.'
14
-
15
- common_constructor :source
16
-
17
- # @return [Struct]
18
- def application
19
- ::Struct.new(:local_source).new(source)
20
- end
21
-
22
- # @return [String]
23
- def author_email
24
- AUTHOR_EMAIL
25
- end
26
-
27
- # @return [String]
28
- def author_name
29
- AUTHOR_NAME
30
- end
31
-
32
- # @return [String]
33
- def author_name_initials
34
- AUTHOR_NAME_INITIALS
35
- end
36
-
37
- # @return [String]
38
- def web_url
39
- "file://#{source.path.expand_path.join('build', 'index.html')}"
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'asciidoctor'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Sources
9
- class Base
10
- module Theme
11
- CONFIGURATION_THEME_KEY = 'theme'
12
- DEFAULT_THEME_DIRECTORY_SUBPATH = 'theme'
13
- THEME_STYLESHEET_BASENAME = 'main.css'
14
-
15
- # @param target_directory_path [Pathname]
16
- def copy_theme_directory_to(target_directory_path)
17
- target_directory_path.parent.mkpath
18
- ::FileUtils.copy_entry(theme_directory, target_directory_path)
19
- end
20
-
21
- # @return [Pathname]
22
- def default_theme_directory
23
- path.join(DEFAULT_THEME_DIRECTORY_SUBPATH)
24
- end
25
-
26
- # @return [Pathname]
27
- def theme_directory
28
- theme_directory_by_configuration || default_theme_directory
29
- end
30
-
31
- # @return [Pathname]
32
- def theme_directory_by_configuration
33
- configuration_entry(CONFIGURATION_THEME_KEY).value.if_present do |v|
34
- v.to_pathname.expand_path(path)
35
- end
36
- end
37
-
38
- # @return [Pathname]
39
- def theme_stylesheet_path
40
- theme_directory.join(THEME_STYLESHEET_BASENAME)
41
- end
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_webapp_base0/sources/base'
4
- require 'avm/eac_asciidoctor_base0/documents_owner'
5
- require 'avm/eac_asciidoctor_base0/instances/build'
6
- require 'avm/eac_asciidoctor_base0/sources/document'
7
- require 'avm/eac_asciidoctor_base0/sources/runners'
8
- require 'eac_ruby_utils/core_ext'
9
-
10
- module Avm
11
- module EacAsciidoctorBase0
12
- module Sources
13
- class Base < ::Avm::EacWebappBase0::Sources::Base
14
- require_sub __FILE__, include_modules: true
15
- include ::Avm::EacAsciidoctorBase0::DocumentsOwner
16
-
17
- CONTENT_DIRECTORY_SUBPATH = ::Pathname.new('content')
18
- CONTENT_DOCUMENT_BASENAME = ::Pathname.new('body.adoc')
19
- MAIN_FILE_SUBPATH = CONTENT_DIRECTORY_SUBPATH.join(
20
- ::Avm::EacAsciidoctorBase0::Sources::Document::TITLE_BASENAME
21
- )
22
-
23
- # @param options [Hash]
24
- # @return [Avm::EacAsciidoctorBase0::Instances::Build]
25
- def build(options = {})
26
- ::Avm::EacAsciidoctorBase0::Instances::Build.new(instance_to_build, options)
27
- end
28
-
29
- def content_directory
30
- path.join(CONTENT_DIRECTORY_SUBPATH)
31
- end
32
-
33
- # @return [Avm::EacAsciidoctorBase0::Sources::Base::InstanceToBuild]
34
- def instance_to_build
35
- ::Avm::EacAsciidoctorBase0::Sources::Base::InstanceToBuild.new(self)
36
- end
37
-
38
- # @return [Avm::EacAsciidoctorBase0::Sources::Document
39
- def root_document
40
- ::Avm::EacAsciidoctorBase0::Sources::Document.new(self, nil, nil)
41
- end
42
-
43
- def valid?
44
- path.join(MAIN_FILE_SUBPATH).file?
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'asciidoctor'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Sources
9
- class Document
10
- module Media
11
- MEDIA_DIRECTORY_BASENAME = '_media'
12
-
13
- def copy_media_directory_to(target_directory_path)
14
- return unless media_directory.directory?
15
-
16
- target_directory_path.parent.mkpath
17
- ::FileUtils.copy_entry(media_directory, target_directory_path)
18
- end
19
-
20
- # @return [Pathname]
21
- def media_directory
22
- root_path.join(MEDIA_DIRECTORY_BASENAME)
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'asciidoctor'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Sources
9
- class Document
10
- module Title
11
- TITLE_BASENAME = 'title'
12
-
13
- # @return [String]
14
- def default_title
15
- root_path.basename.to_s.humanize.split(/\s+/).map(&:upcase_first).join(' ')
16
- end
17
-
18
- # @return [String]
19
- def title
20
- title_path.exist? ? title_path.read.strip : default_title
21
- end
22
-
23
- # @return [Pathname]
24
- def title_path
25
- root_path.join(TITLE_BASENAME)
26
- end
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'asciidoctor'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Sources
9
- class Document
10
- enable_simple_cache
11
- enable_speaker
12
- require_sub __FILE__, include_modules: true
13
- common_constructor :source, :parent_document, :basename
14
-
15
- # Absolute path to the Asciidoctor file.
16
- #
17
- # @return [Pathname]
18
- def body_path
19
- root_path.join(
20
- ::Avm::EacAsciidoctorBase0::Sources::Base::CONTENT_DOCUMENT_BASENAME
21
- )
22
- end
23
-
24
- # @return [Avm::EacAsciidoctorBase0::Instances::Build::Document]
25
- def build_document
26
- source.build.document(subpath)
27
- end
28
-
29
- # Absolute path to the document's source root.
30
- #
31
- # @return [Pathname]
32
- def root_path
33
- source.content_directory.join(subpath)
34
- end
35
-
36
- # @return [Pathname]
37
- def subpath
38
- parent_document.if_present('.'.to_pathname) { |pd| pd.subpath.join(basename) }
39
- end
40
-
41
- # @return [String]
42
- def to_s
43
- subpath.to_path
44
- end
45
-
46
- private
47
-
48
- def children_uncached
49
- root_path.children.select(&:directory?)
50
- .reject { |path| path.basename.to_path == MEDIA_DIRECTORY_BASENAME }
51
- .map { |path| self.class.new(source, self, path.basename) }
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,58 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/instances/build'
4
- require 'avm/eac_asciidoctor_base0/sources/runners/ignore_errors_option'
5
- require 'eac_cli/core_ext'
6
- require 'os'
7
-
8
- module Avm
9
- module EacAsciidoctorBase0
10
- module Sources
11
- module Runners
12
- class Build
13
- include ::Avm::EacAsciidoctorBase0::Sources::Runners::IgnoreErrorsOption
14
-
15
- runner_with :help do
16
- desc 'Build the project'
17
- arg_opt '-d', '--target-dir', 'Directory to build'
18
- bool_opt '--open', 'Show the result.'
19
- end
20
-
21
- private
22
-
23
- # @return [Avm::EacAsciidoctorBase0::Instances::Build]
24
- def build_uncached
25
- source.build(target_directory: parsed.target_dir)
26
- end
27
-
28
- def default_target_directory
29
- runner_context.call(:project).root.join('build')
30
- end
31
-
32
- def open
33
- return unless parsed.open?
34
-
35
- infom "Opening \"#{open_path}\"..."
36
- ::EacRubyUtils::Envs.local.command(OS.open_file_command, open_path).system!
37
- end
38
-
39
- def open_path
40
- build.root_document.body_target_path
41
- end
42
-
43
- # @return [void]
44
- def run_without_rescue
45
- start_banner
46
- build.perform
47
- open
48
- end
49
-
50
- def start_banner
51
- runner_context.call(:source_banner)
52
- infov 'Target directory', build.target_directory
53
- end
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/sources/runners/ignore_errors_option'
4
- require 'os'
5
- require 'eac_cli/core_ext'
6
-
7
- module Avm
8
- module EacAsciidoctorBase0
9
- module Sources
10
- module Runners
11
- class Document
12
- class Build
13
- include ::Avm::EacAsciidoctorBase0::Sources::Runners::IgnoreErrorsOption
14
-
15
- runner_with :help do
16
- bool_opt '-O', '--open'
17
- end
18
-
19
- protected
20
-
21
- def run_without_rescue
22
- %w[build open ending].each { |p| send("run_#{p}") }
23
- end
24
-
25
- private
26
-
27
- def build_document_uncached
28
- document.build_document
29
- end
30
-
31
- def run_build
32
- build_document.perform_self
33
- end
34
-
35
- def run_ending
36
- success 'Done'
37
- end
38
-
39
- def run_open
40
- return unless parsed.open?
41
-
42
- infov 'Opening', build_document.body_target_path
43
- ::EacRubyUtils::Envs.local.command(OS.open_file_command,
44
- build_document.body_target_path).system!
45
- end
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Avm
6
- module EacAsciidoctorBase0
7
- module Sources
8
- module Runners
9
- class Document
10
- runner_with :help, :subcommands do
11
- pos_arg :subpath
12
- subcommands
13
- end
14
- delegate :subpath, to: :parsed
15
- for_context :document, :subpath
16
-
17
- private
18
-
19
- # @return [Avm::EacAsciidoctorBase0::Sources::Document]
20
- # @raise [KeyError]
21
- def document_uncached
22
- source.document(subpath)
23
- end
24
-
25
- require_sub __FILE__
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Avm
6
- module EacAsciidoctorBase0
7
- module Sources
8
- module Runners
9
- class Documents
10
- runner_with :help
11
-
12
- def run
13
- infov 'Documents', documents.count
14
- documents.each do |document|
15
- infov ' * ', document
16
- end
17
- end
18
-
19
- private
20
-
21
- def documents_uncached
22
- source.documents
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/logging/catcher'
4
- require 'eac_cli/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Sources
9
- module Runners
10
- module IgnoreErrorsOption
11
- common_concern do
12
- acts_as_abstract :run_without_rescue
13
-
14
- include ::EacCli::Runner
15
- runner_definition do
16
- bool_opt '-g', '--ignore-errors'
17
- end
18
- end
19
-
20
- # @return [Boolean]
21
- delegate :ignore_errors?, to: :parsed
22
-
23
- # @return [void]
24
- def run
25
- catcher_send { run_without_rescue }
26
- rescue ::Avm::EacAsciidoctorBase0::Logging::Error => e
27
- fatal_error e
28
- end
29
-
30
- protected
31
-
32
- # @return [Proc]
33
- def catcher_send(&block)
34
- if ignore_errors?
35
- block.call
36
- else
37
- ::Avm::EacAsciidoctorBase0::Logging::Catcher.on(&block)
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module EacAsciidoctorBase0
7
- module Sources
8
- require_sub __FILE__
9
- end
10
- end
11
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/file_formats/base'
4
-
5
- RSpec.describe Avm::EacAsciidoctorBase0::FileFormats::Base do
6
- include_examples 'avm_file_format_file_resource_name', {
7
- 'content/title' => 'Content[/]',
8
- 'content/body.adoc' => 'Content[/]',
9
- 'content/abc/title' => 'Content[/abc]',
10
- 'content/abc/body.adoc' => 'Content[/abc]',
11
- 'content/abc/sub/body.adoc' => 'Content[/abc/sub]'
12
- }
13
- end
@@ -1,81 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/instances/build'
4
-
5
- RSpec.describe Avm::EacAsciidoctorBase0::Instances::Build::Document do
6
- let(:app_director) { eac_asciidoctor_base0_stubs }
7
- let(:build) { Avm::EacAsciidoctorBase0::Instances::Build.new(app_director.instance) }
8
- let(:fixtures_dir) { __dir__.to_pathname.join('document_spec_files') }
9
- let(:instance) { build_doc_child(build.root_document, :c1, :c1_1, :c1_1_1) } # rubocop:disable Naming/VariableNumber
10
- let(:target_file) { fixtures_dir.join('pre_processed_root_body.adoc') }
11
- let(:source) { app_director.source }
12
- let(:doc_template) do
13
- r = temp_dir
14
- FileUtils.copy_entry(source.root_document.root_path, r)
15
- r
16
- end
17
- let(:pre_processed_body_source_content) do
18
- sanitize_body_source(instance.pre_processed_body_source_content)
19
- end
20
-
21
- before do
22
- copy_template_hash(
23
- source.root_document,
24
- c1: {
25
- c1_1: { # rubocop:disable Naming/VariableNumber
26
- c1_1_1: { # rubocop:disable Naming/VariableNumber
27
- c1_1_1_1: {}, # rubocop:disable Naming/VariableNumber
28
- c1_1_1_2: {} # rubocop:disable Naming/VariableNumber
29
- },
30
- c1_1_2: { # rubocop:disable Naming/VariableNumber
31
- c1_1_2_1: {}, # rubocop:disable Naming/VariableNumber
32
- c1_1_2_2: {} # rubocop:disable Naming/VariableNumber
33
- }
34
- }
35
- },
36
- c2: {
37
- c2_1: {} # rubocop:disable Naming/VariableNumber
38
- }
39
- )
40
- end
41
-
42
- it do
43
- expect(pre_processed_body_source_content).to eq(target_file.read)
44
- end
45
-
46
- # @return [Avm::EacAsciidoctorBase0::Sources::Document]
47
- def copy_template_doc(parent, basename)
48
- parent.assert_argument(Avm::EacAsciidoctorBase0::Sources::Document, 'parent')
49
-
50
- root_target = parent.root_path.join(basename.to_s)
51
- FileUtils.copy_entry(doc_template, root_target)
52
- root_target.join('title').write(root_target.basename.to_path)
53
- Avm::EacAsciidoctorBase0::Sources::Document.new(parent.source, parent,
54
- root_target.basename)
55
- end
56
-
57
- # @return [Array<Avm::EacAsciidoctorBase0::Sources::Document>]
58
- def copy_template_hash(parent, hash)
59
- parent.assert_argument(Avm::EacAsciidoctorBase0::Sources::Document, 'parent')
60
- hash.assert_argument(Hash, 'hash')
61
-
62
- hash.map do |k, v|
63
- r = copy_template_doc(parent, k)
64
- copy_template_hash(r, v)
65
- r
66
- end
67
- end
68
-
69
- # @return [Avm::EacAsciidoctorBase0::Instances::Build::Document]
70
- def build_doc_child(build_doc, *path)
71
- basename = path.shift.to_s
72
- r = build_doc.child!(basename)
73
- path.any? ? build_doc_child(r, *path) : r
74
- end
75
-
76
- # @param source [String]
77
- # @return [String]
78
- def sanitize_body_source(source)
79
- source.gsub(/^:stylesheet:\s*.+\s*$/, ':stylesheet: ../../../../theme/main.css')
80
- end
81
- end
@@ -1,25 +0,0 @@
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.
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/instances/build'
4
- require 'eac_fs/comparator'
5
-
6
- RSpec.describe Avm::EacAsciidoctorBase0::Instances::Build do
7
- let(:app_director) { eac_asciidoctor_base0_stubs }
8
- let(:fs_comparator) { EacFs::Comparator.new.truncate_file('*.html') }
9
- let(:instance) { described_class.new(app_director.instance) }
10
-
11
- include_examples 'source_target_fixtures', __FILE__ do
12
- def source_data(source_file)
13
- FileUtils.copy_entry(source_file, app_director.source.path)
14
- instance.perform
15
- fs_comparator.build(instance.target_directory)
16
- end
17
-
18
- def target_data(target_file)
19
- fs_comparator.build(target_file.to_pathname)
20
- end
21
- end
22
- end