eac_tools 0.96.0 → 0.96.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +27 -33
  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 +47 -90
  36. data/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +0 -26
  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 -47
  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 -54
  67. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document/build.rb +0 -46
  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.rb +0 -11
  71. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/file_formats/base_spec.rb +0 -13
  72. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec.rb +0 -81
  73. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec_files/pre_processed_root_body.adoc +0 -25
  74. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec.rb +0 -22
  75. 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
  76. 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
  77. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/body.adoc +0 -11
  78. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/title +0 -1
  79. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/body.adoc +0 -11
  80. 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
  81. 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
  82. 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
  83. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/title +0 -1
  84. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_media/a_media_file +0 -1
  85. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_theme/main.css +0 -1
  86. 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
  87. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/index.html +0 -1
  88. 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
  89. 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
  90. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/index.html +0 -1
  91. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/index.html +0 -1
  92. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec.rb +0 -8
  93. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/body.adoc +0 -11
  94. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/title +0 -1
  95. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/theme/main.css +0 -1
  96. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/sources/base_spec.rb +0 -16
  97. data/sub/avm-eac_asciidoctor_base0/spec/spec_helper/eac_asciidoctor_base0_stubs.rb +0 -55
  98. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/body.adoc +0 -11
  99. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/title +0 -1
  100. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/theme/main.css +0 -1
  101. /data/sub/{avm-eac_asciidoctor_base0 → avm-eac_rails_base1}/Gemfile +0 -0
  102. /data/sub/{avm-eac_asciidoctor_base0 → avm-eac_rails_base1}/spec/rubocop_spec.rb +0 -0
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/instances/macros/base'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Instances
9
- module Macros
10
- class ChildDocs < ::Avm::EacAsciidoctorBase0::Instances::Macros::Base
11
- class DocumentBuilder
12
- common_constructor :child_docs, :document, :depth, default: [0]
13
- compare_by :title, :address
14
-
15
- # @return [Pathname]
16
- def address
17
- root_document.href_to_other_body(document)
18
- end
19
-
20
- # @return [Array] Document's children mapped to document builders.
21
- def children
22
- document.children.map { |c| self.class.new(child_docs, c, depth + 1) }.sort
23
- end
24
-
25
- # @return [Boolean]
26
- def lines_for_children?
27
- child_docs.maximum_depth.negative? || child_docs.maximum_depth <= depth
28
- end
29
-
30
- # @return [String]
31
- def link
32
- "link:#{address}[#{title}]"
33
- end
34
-
35
- # @return [Array<String>]
36
- def result
37
- children.flat_map do |child|
38
- r = [child.self_line]
39
- r += child.result if lines_for_children?
40
- r
41
- end
42
- end
43
-
44
- # @return [Avm::EacAsciidoctorBase0::Instances::Build::Document]
45
- def root_document
46
- child_docs.document
47
- end
48
-
49
- # @return [String]
50
- def self_line
51
- "#{'*' * depth} #{link}"
52
- end
53
-
54
- # @return [String]
55
- def title
56
- document.source_document.title
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/instances/macros/base'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Instances
9
- module Macros
10
- class ChildDocs < ::Avm::EacAsciidoctorBase0::Instances::Macros::Base
11
- DEFAULT_MAXIMUM_DEPTH = -1
12
-
13
- # @return [Array<String>]
14
- def result
15
- document_builder_class.new(self, document).result
16
- end
17
-
18
- # @return [Integer]
19
- def maximum_depth
20
- arguments[0].if_present(DEFAULT_MAXIMUM_DEPTH, &:to_i)
21
- end
22
-
23
- private
24
-
25
- # @return [Class]
26
- def document_builder_class
27
- ::Avm::EacAsciidoctorBase0::Instances::Macros::ChildDocs::DocumentBuilder
28
- end
29
-
30
- require_sub __FILE__
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/instances/macros/base'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Instances
9
- module Macros
10
- class DefaultBody < ::Avm::EacAsciidoctorBase0::Instances::Macros::Base
11
- RESULT_LINES = ['== Índice', '', '//#child_docs'].freeze
12
-
13
- # @return [Array<String>]
14
- def result
15
- RESULT_LINES
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/logging/error'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Logging
9
- class Catcher < ::SimpleDelegator
10
- CATCH_LEVEL = ::Logger::ERROR
11
- LOGGER_METHODS = %i[unknown fatal error warn info debug].freeze
12
-
13
- class << self
14
- # @param [String]
15
- # @return [Integer]
16
- def level_by_method(method_name)
17
- ::Logger.const_get(method_name.to_s.underscore.upcase)
18
- end
19
-
20
- # @return [Hash<Symbol, Integer]
21
- def methods_levels
22
- LOGGER_METHODS.to_h { |method_name| [method_name, level_by_method(method_name)] }
23
- end
24
-
25
- def on
26
- real_logger = ::Asciidoctor::LoggerManager.logger
27
- begin
28
- ::Asciidoctor::LoggerManager.logger = new(real_logger)
29
- yield
30
- ensure
31
- ::Asciidoctor::LoggerManager.logger = real_logger
32
- end
33
- end
34
- end
35
-
36
- methods_levels.each do |method_name, level|
37
- define_method method_name do |*args, &block|
38
- __getobj__.send(method_name, *args, &block)
39
- return unless level >= CATCH_LEVEL
40
-
41
- raise ::Avm::EacAsciidoctorBase0::Logging::Error.new(level, *args, &block)
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module EacAsciidoctorBase0
7
- module Logging
8
- class Error < ::RuntimeError
9
- attr_reader :level
10
-
11
- def initialize(level, *args)
12
- @level = level
13
- super(*args)
14
- end
15
- end
16
- end
17
- end
18
- 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 Logging
8
- require_sub __FILE__
9
- end
10
- end
11
- end
@@ -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,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_asciidoctor_base0/instances/build'
4
- require 'eac_cli/core_ext'
5
- require 'os'
6
-
7
- module Avm
8
- module EacAsciidoctorBase0
9
- module Sources
10
- module Runners
11
- class Build
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
- def run
19
- start_banner
20
- build.perform
21
- open
22
- end
23
-
24
- private
25
-
26
- # @return [Avm::EacAsciidoctorBase0::Instances::Build]
27
- def build_uncached
28
- source.build(target_directory: parsed.target_dir)
29
- end
30
-
31
- def default_target_directory
32
- runner_context.call(:project).root.join('build')
33
- end
34
-
35
- def open
36
- return unless parsed.open?
37
-
38
- infom "Opening \"#{open_path}\"..."
39
- ::EacRubyUtils::Envs.local.command(OS.open_file_command, open_path).system!
40
- end
41
-
42
- def open_path
43
- build.root_document.body_target_path
44
- end
45
-
46
- def start_banner
47
- runner_context.call(:source_banner)
48
- infov 'Target directory', build.target_directory
49
- end
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'os'
4
- require 'eac_cli/core_ext'
5
-
6
- module Avm
7
- module EacAsciidoctorBase0
8
- module Sources
9
- module Runners
10
- class Document
11
- class Build
12
- runner_with :help do
13
- bool_opt '-O', '--open'
14
- end
15
-
16
- def run
17
- %w[build open ending].each { |p| send("run_#{p}") }
18
- end
19
-
20
- private
21
-
22
- def build_document_uncached
23
- document.build_document
24
- end
25
-
26
- def run_build
27
- build_document.perform_self
28
- end
29
-
30
- def run_ending
31
- success 'Done'
32
- end
33
-
34
- def run_open
35
- return unless parsed.open?
36
-
37
- infov 'Opening', build_document.body_target_path
38
- ::EacRubyUtils::Envs.local.command(OS.open_file_command,
39
- build_document.body_target_path).system!
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
46
- 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,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