avm-tools 0.117.1 → 0.118.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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/tools/runner/app_src/info.rb +0 -8
  3. data/lib/avm/tools/runner/app_src/subs.rb +71 -0
  4. data/lib/avm/tools/runner/eac_redmine_base0/core_update.rb +1 -1
  5. data/lib/avm/tools/version.rb +1 -1
  6. data/sub/avm/lib/avm/sources/base/configuration.rb +13 -6
  7. data/sub/avm/lib/avm/sources/base/subs.rb +55 -0
  8. data/sub/avm/lib/avm/sources/base/subs_paths.rb +32 -0
  9. data/sub/avm/lib/avm/sources/base.rb +0 -5
  10. data/sub/avm/lib/avm/version.rb +1 -1
  11. data/sub/avm-eac_rails_base0/avm-eac_rails_base0.gemspec +1 -1
  12. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/sources/base.rb +27 -0
  13. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/version.rb +1 -1
  14. data/sub/avm-eac_rails_base1/avm-eac_rails_base1.gemspec +1 -0
  15. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/sources/base.rb +27 -0
  16. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/version.rb +1 -1
  17. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +1 -1
  18. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/core_update.rb +4 -0
  19. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +27 -0
  20. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +1 -1
  21. data/sub/eac_cli/lib/eac_cli/definition.rb +0 -4
  22. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +12 -5
  23. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb +15 -6
  24. data/sub/eac_cli/lib/eac_cli/runner_with/help.rb +1 -1
  25. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb +1 -1
  26. data/sub/eac_cli/lib/eac_cli/version.rb +1 -1
  27. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb +4 -1
  28. data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +4 -1
  29. data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +1 -1
  30. data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  31. metadata +12 -7
  32. data/sub/eac_cli/lib/eac_cli/definition/help_formatter.rb +0 -77
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c5b9e1cd2e14d276b38a0efe3965a884143065eafbade65938f37f72f0857e9
4
- data.tar.gz: 81d047244f7fa7478bffc26e23457da9da5cc7e33839b6108e7fe55cb78a4706
3
+ metadata.gz: 934d4ed06e787c60b6d3bb79b2962290ab933e7dc4b75a0f2a7b767e346d8ed6
4
+ data.tar.gz: ed4f80fe5ec3bac6ae64e6efc6c8bf95f47e228ecc6445f79f9ab9807239278e
5
5
  SHA512:
6
- metadata.gz: 4c802171d7c42fde415e6674888a0d430c003107d87846e7159cfc5aebb7d04a604b7b7f6c034b9d0081206e111f373e13e7fada07e2130d92624409f4389b17
7
- data.tar.gz: 30765546f1f0faab035133812dd4f0508ac5a63112e2aa1925758c1bf66e7a81d92e01ed61f298c9f05f12cd156d49940d333c89ce3f9971b40021ef9c566bfd
6
+ metadata.gz: c9fe3ccc4c3b9c5527405cf534c1ac481bacf9be50cadca02511a6a58311fde0132e1905ac466eb0a0d3b9529f36f2174b7100e4581a4842c4870f93952f2065
7
+ data.tar.gz: 7f6e8a7c43bedeeb8bf8c28d3fbd0d6467c5ec41ab7914b46d978a6adba1babfbbe8c7809d86744165ac2edffa6bc58a2475ab57d84106360a76696793718e70
@@ -14,7 +14,6 @@ module Avm
14
14
  def run
15
15
  show_instance
16
16
  show_source
17
- show_subs
18
17
  end
19
18
 
20
19
  private
@@ -29,13 +28,6 @@ module Avm
29
28
  infov 'SCM', runner_context.call(:subject).scm
30
29
  end
31
30
 
32
- def show_subs
33
- infov 'Sub applications', instance.avm_instance.subs.count
34
- instance.avm_instance.subs.each do |subapp|
35
- infov ' * ', "#{subapp.relative_path} [#{subapp.class}]"
36
- end
37
- end
38
-
39
31
  def instance
40
32
  runner_context.call(:instance)
41
33
  end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class AppSrc
9
+ class Subs
10
+ PADDING = ' '
11
+
12
+ runner_with :help, :output do
13
+ desc 'Output source\'s subs.'
14
+ bool_opt '-i', '--info'
15
+ bool_opt '-R', '--recursive'
16
+ bool_opt '-t', '--tree'
17
+ end
18
+
19
+ def run
20
+ start_banner
21
+ run_output
22
+ end
23
+
24
+ def start_banner
25
+ infov 'Include PATH', runner_context.call(:subject).subs_include_path
26
+ infov 'Exclude PATH', runner_context.call(:subject).subs_exclude_path
27
+ infov 'Count', runner_context.call(:subject).subs.count
28
+ end
29
+
30
+ def output_content
31
+ b = []
32
+ runner_context.call(:subject).subs.each do |sub|
33
+ b += sub_output_content_lines(sub, 0)
34
+ end
35
+ b.map { |line| "#{line}\n" }.join
36
+ end
37
+
38
+ def sub_info_label(sub)
39
+ return '' unless parsed.info?
40
+
41
+ ' [' + {
42
+ 'CLASS' => sub.class.name
43
+ }.map { |k, v| "#{k}: #{v}" }.join(', ') + ']'
44
+ end
45
+
46
+ def sub_label(sub, level)
47
+ sub_self_label(sub, level) + sub_info_label(sub)
48
+ end
49
+
50
+ def sub_self_label(sub, level)
51
+ if parsed.tree?
52
+ (PADDING * level) + sub.relative_path.to_s
53
+ else
54
+ sub.path.relative_path_from(runner_context.call(:subject).path).to_s
55
+ end
56
+ end
57
+
58
+ def sub_output_content_lines(sub, level)
59
+ [sub_label(sub, level)] + sub_subs_output_content_lines(sub, level)
60
+ end
61
+
62
+ def sub_subs_output_content_lines(sub, level)
63
+ return [] unless parsed.recursive?
64
+
65
+ sub.subs.flat_map { |sub_sub| sub_output_content_lines(sub_sub, level + 1) }
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -32,7 +32,7 @@ module Avm
32
32
  end
33
33
 
34
34
  def url
35
- options.fetch('--url') || url_by_version
35
+ parsed.url || url_by_version
36
36
  end
37
37
 
38
38
  def url_by_version
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.117.1'
5
+ VERSION = '0.118.0'
6
6
  end
7
7
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_config/yaml_file_node'
3
4
  require 'eac_ruby_utils/core_ext'
4
5
  require 'eac_ruby_utils/yaml'
5
6
  require 'shellwords'
@@ -10,21 +11,27 @@ module Avm
10
11
  module Configuration
11
12
  # @return [Array<String>, nil]
12
13
  def read_configuration_as_shell_words(key)
13
- configuration[key].if_present do |v|
14
+ configuration.entry(key).value.if_present do |v|
14
15
  v.is_a?(::Enumerable) ? v.map(&:to_s) : ::Shellwords.split(v.to_s)
15
16
  end
16
17
  end
17
18
 
18
19
  private
19
20
 
20
- # @return [Hash]
21
+ # @return [EacConfig::YamlFileNode]
21
22
  def configuration_uncached
22
23
  ::Avm::Sources::Configuration::FILENAMES.each do |filename|
23
- file_path = path.join(filename)
24
- return ::EacRubyUtils::Yaml.load_file(file_path).with_indifferent_access if
25
- file_path.exist?
24
+ configuration_with_filename(filename, true)
26
25
  end
27
- {}
26
+ configuration_with_filename(::Avm::Sources::Configuration::FILENAMES.first, false)
27
+ end
28
+
29
+ # @return [EacConfig::YamlFileNode, nil]
30
+ def configuration_with_filename(filename, needs_exist)
31
+ file_path = path.join(filename)
32
+ return ::EacConfig::YamlFileNode.new(file_path) if !needs_exist || file_path.exist?
33
+
34
+ nil
28
35
  end
29
36
 
30
37
  # @return [Avm::Sources::Configuration]
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/sources/base/subs_paths'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Sources
8
+ class Base
9
+ module Subs
10
+ CONFIGURATION_SUBS_EXCLUDE_PATHS_KEY = 'subs.exclude_path'
11
+ CONFIGURATION_SUBS_INCLUDE_PATHS_KEY = 'subs.include_path'
12
+ SUBS_EXCLUDE_PATHS_DEFAULT = [].freeze
13
+ SUBS_INCLUDE_PATHS_DEFAULT = ['sub/*'].freeze
14
+
15
+ # @return [Enumerable<Avm::Sources::Base>]
16
+ def subs
17
+ subs_paths_to_search
18
+ .map { |sub_path| ::Avm::Registry.sources.detect_optional(sub_path, parent: self) }
19
+ .reject(&:blank?)
20
+ .sort_by { |sub| [sub.path] }
21
+ end
22
+
23
+ def subs_paths_to_search
24
+ subs_include_paths.flat_map do |subs_include_path|
25
+ ::Pathname.glob(path.join(subs_include_path)).reject do |sub_path|
26
+ subs_exclude_paths.any? do |subs_exclude_path|
27
+ sub_path.fnmatch?(path.join(subs_exclude_path).to_path)
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ %i[include exclude].each do |type|
34
+ %i[path paths configured_paths default_paths].each do |method_suffix|
35
+ obj_method_name = "subs_#{type}_path_obj"
36
+
37
+ define_method "subs_#{type}_#{method_suffix}" do
38
+ send(obj_method_name).send(method_suffix)
39
+ end
40
+
41
+ define_method "#{obj_method_name}_uncached" do
42
+ ::Avm::Sources::Base::SubsPaths.new(
43
+ self,
44
+ self.class.const_get("CONFIGURATION_SUBS_#{type}_PATHS_KEY".upcase),
45
+ self.class.const_get("SUBS_#{type}_PATHS_DEFAULT".upcase)
46
+ )
47
+ end
48
+
49
+ private "#{obj_method_name}_uncached" # rubocop:disable Style/AccessModifierDeclarations
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Sources
7
+ class Base
8
+ class SubsPaths
9
+ SUBS_PATH_SEPARATOR = ':'
10
+
11
+ common_constructor :source, :configuration_key, :default_paths
12
+
13
+ # @return [String]
14
+ def path
15
+ paths.join(SUBS_PATH_SEPARATOR)
16
+ end
17
+
18
+ # @return [Array<String>]
19
+ def paths
20
+ configured_paths || default_paths
21
+ end
22
+
23
+ # @return [Array<String>]
24
+ def configured_paths
25
+ source.configuration.entry(configuration_key).value.if_present do |v|
26
+ v.split(SUBS_PATH_SEPARATOR)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -33,11 +33,6 @@ module Avm
33
33
  "#{self.class}[#{path}]"
34
34
  end
35
35
 
36
- # @return [Enumerable<Avm::Sources::Base>]
37
- def subs
38
- scm.subs.map { |subrepo| ::Avm::Registry.sources.detect(subrepo.path, parent: self) }
39
- end
40
-
41
36
  private
42
37
 
43
38
  # @return [Avm::Scms::Base]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.19.0'
4
+ VERSION = '0.20.0'
5
5
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,template}/**/*']
14
14
 
15
- s.add_dependency 'avm-eac_rails_base1', '~> 0.2'
15
+ s.add_dependency 'avm-eac_rails_base1', '~> 0.3'
16
16
  s.add_dependency 'eac_ruby_utils', '~> 0.80', '>= 0.80.2'
17
17
 
18
18
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.4'
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_rails_base1/sources/base'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacRailsBase0
8
+ module Sources
9
+ class Base < ::Avm::EacRailsBase1::Sources::Base
10
+ CONFIG_RU_SUBPATH = 'config.ru'
11
+ SUBS_PATHS_DEFAULT = ['sub/*/*'].freeze
12
+
13
+ def config_ru_path
14
+ path.join(CONFIG_RU_SUBPATH)
15
+ end
16
+
17
+ def subs_paths_default
18
+ SUBS_PATHS_DEFAULT
19
+ end
20
+
21
+ def valid?
22
+ super && config_ru_path.exist?
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRailsBase0
5
- VERSION = '0.3.0'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
+ s.add_dependency 'avm-eac_ruby_base1', '~> 0.6'
15
16
  s.add_dependency 'avm-eac_webapp_base0', '~> 0.3'
16
17
  s.add_dependency 'eac_ruby_gems_utils', '~> 0.9', '>= 0.9.9'
17
18
  s.add_dependency 'eac_ruby_utils', '~> 0.68'
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_ruby_base1/sources/base'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacRailsBase1
8
+ module Sources
9
+ class Base < ::Avm::EacRubyBase1::Sources::Base
10
+ CONFIG_RU_SUBPATH = 'config.ru'
11
+ SUBS_PATHS_DEFAULT = ['sub/*/*'].freeze
12
+
13
+ def config_ru_path
14
+ path.join(CONFIG_RU_SUBPATH)
15
+ end
16
+
17
+ def subs_paths_default
18
+ SUBS_PATHS_DEFAULT
19
+ end
20
+
21
+ def valid?
22
+ super && config_ru_path.exist?
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRailsBase1
5
- VERSION = '0.2.1'
5
+ VERSION = '0.3.0'
6
6
  end
7
7
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,template}/**/*']
14
14
 
15
- s.add_dependency 'avm-eac_rails_base1', '~> 0.2'
15
+ s.add_dependency 'avm-eac_rails_base1', '~> 0.3'
16
16
  s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.2'
17
17
  s.add_dependency 'curb', '~> 0.9.10'
18
18
  s.add_dependency 'eac_fs', '~> 0.4'
@@ -36,6 +36,10 @@ module Avm
36
36
  infov 'Package size', source_package.path.size
37
37
  end
38
38
 
39
+ def fs_object_id
40
+ [instance.id, version].join('_').variableize
41
+ end
42
+
39
43
  private
40
44
 
41
45
  attr_reader :tempdir
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_rails_base1/sources/base'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacRedmineBase0
8
+ module Sources
9
+ class Base < ::Avm::EacRailsBase1::Sources::Base
10
+ REDMINE_LIB_SUBPATH = 'lib/redmine.rb'
11
+ SUBS_PATHS_DEFAULT = ['plugins/*'].freeze
12
+
13
+ def redmine_lib_path
14
+ path.join(REDMINE_LIB_SUBPATH)
15
+ end
16
+
17
+ def subs_paths_default
18
+ SUBS_PATHS_DEFAULT
19
+ end
20
+
21
+ def valid?
22
+ super && redmine_lib_path.exist?
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRedmineBase0
5
- VERSION = '0.5.1'
5
+ VERSION = '0.6.0'
6
6
  end
7
7
  end
@@ -39,10 +39,6 @@ module EacCli
39
39
  self.description = description
40
40
  end
41
41
 
42
- def help_formatter
43
- @help_formatter ||= ::EacCli::Definition::HelpFormatter.new(self)
44
- end
45
-
46
42
  def main_alternative
47
43
  @main_alternative ||= begin
48
44
  r = ::EacCli::Definition::Alternative.new
@@ -7,18 +7,19 @@ module EacCli
7
7
  module Help
8
8
  class Builder
9
9
  class Alternative
10
- PROGRAM_MACRO = '__PROGRAM__'
10
+ enable_method_class
11
+
11
12
  SUBCOMMANDS_MACRO = '__SUBCOMMANDS__'
12
13
 
13
- common_constructor :alternative
14
+ common_constructor :builder, :alternative
14
15
 
15
- def to_s
16
+ def result
16
17
  (
17
- [PROGRAM_MACRO] +
18
+ program_name +
18
19
  alternative.options_argument?.if_present([]) { |_v| ['[options]'] } +
19
20
  options +
20
21
  positionals
21
- ).join(::EacCli::RunnerWith::Help::Builder::SEP)
22
+ ).join(builder.word_separator)
22
23
  end
23
24
 
24
25
  def options
@@ -49,6 +50,12 @@ module EacCli
49
50
  r
50
51
  end
51
52
  end
53
+
54
+ def program_name
55
+ r = builder.runner.program_name
56
+ r = [r] unless r.is_a?(::Enumerable)
57
+ r
58
+ end
52
59
  end
53
60
  end
54
61
  end
@@ -6,8 +6,8 @@ module EacCli
6
6
  module RunnerWith
7
7
  module Help
8
8
  class Builder
9
- require_sub __FILE__
10
- common_constructor :definition
9
+ require_sub __FILE__, require_dependency: true
10
+ common_constructor :runner
11
11
 
12
12
  SEP = ' '
13
13
  IDENT = SEP * 2
@@ -28,11 +28,21 @@ module EacCli
28
28
 
29
29
  def option_usage_full(option)
30
30
  if option.long.present?
31
- [option.short, option_long(option)].reject(&:blank?).join(SEP)
31
+ [option.short, option_long(option)].reject(&:blank?).join(word_separator)
32
32
  else
33
33
  option_short(option)
34
34
  end
35
35
  end
36
+
37
+ def word_separator
38
+ SEP
39
+ end
40
+ end
41
+
42
+ delegate :word_separator, to: :class
43
+
44
+ def definition
45
+ runner.class.runner_definition
36
46
  end
37
47
 
38
48
  def option_definition(option)
@@ -45,8 +55,7 @@ module EacCli
45
55
  b = include_header ? "#{header.humanize}:\n" : ''
46
56
  b += send("self_#{header}") + "\n"
47
57
  definition.alternatives.each do |alternative|
48
- b += IDENT + ::EacCli::RunnerWith::Help::Builder::Alternative.new(alternative).to_s +
49
- "\n"
58
+ b += IDENT + self.alternative(alternative) + "\n"
50
59
  end
51
60
  b
52
61
  end
@@ -60,7 +69,7 @@ module EacCli
60
69
  def usage_section
61
70
  "Usage:\n" +
62
71
  definition.alternatives.map do |alternative|
63
- IDENT + ::EacCli::RunnerWith::Help::Builder::Alternative.new(alternative).to_s + "\n"
72
+ IDENT + self.alternative(alternative) + "\n"
64
73
  end.join
65
74
  end
66
75
 
@@ -28,7 +28,7 @@ module EacCli
28
28
  end
29
29
 
30
30
  def help_text
31
- r = ::EacCli::RunnerWith::Help::Builder.new(self.class.runner_definition).to_s
31
+ r = ::EacCli::RunnerWith::Help::Builder.new(self).to_s
32
32
  r += help_extra_text if respond_to?(:help_extra_text)
33
33
  r
34
34
  end
@@ -104,7 +104,7 @@ module EacCli
104
104
  end
105
105
 
106
106
  def subcommand_program
107
- subcommand_name
107
+ [program_name, subcommand_name]
108
108
  end
109
109
 
110
110
  def subcommand_runner
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacCli
4
- VERSION = '0.27.4'
4
+ VERSION = '0.27.5'
5
5
  end
@@ -26,7 +26,7 @@ RSpec.describe ::EacCli::RunnerWith::Help do
26
26
  ].each do |runner_argv|
27
27
  context "when runner ARGV is #{runner_argv}" do
28
28
  let(:instance) { runner.create(argv: runner_argv) }
29
- let(:expected_output) do
29
+ let(:expected_output_source) do
30
30
  <<~OUTPUT
31
31
  A stub runner.
32
32
 
@@ -39,6 +39,9 @@ RSpec.describe ::EacCli::RunnerWith::Help do
39
39
 
40
40
  OUTPUT
41
41
  end
42
+ let(:expected_output) do
43
+ expected_output_source.gsub('__PROGRAM__', instance.program_name)
44
+ end
42
45
 
43
46
  it 'show help text' do
44
47
  expect { instance.run_run }.to output(expected_output).to_stdout_from_any_process
@@ -57,7 +57,7 @@ RSpec.describe ::EacCli::RunnerWith::Subcommands do
57
57
 
58
58
  context 'with help' do
59
59
  let(:instance) { parent_runner.create(%w[--help]) }
60
- let(:expected_output) do
60
+ let(:expected_output_source) do
61
61
  <<~OUTPUT
62
62
  A stub root runner.
63
63
 
@@ -73,6 +73,9 @@ RSpec.describe ::EacCli::RunnerWith::Subcommands do
73
73
  child-cmd
74
74
  OUTPUT
75
75
  end
76
+ let(:expected_output) do
77
+ expected_output_source.gsub('__PROGRAM__', instance.program_name)
78
+ end
76
79
 
77
80
  before do
78
81
  parent_runner.include(::EacCli::RunnerWith::Help)
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
- s.add_dependency 'eac_cli', '~> 0.27', '>= 0.27.4'
15
+ s.add_dependency 'eac_cli', '~> 0.27', '>= 0.27.5'
16
16
  s.add_dependency 'eac_fs', '~> 0.10'
17
17
  s.add_dependency 'eac_ruby_gems_utils', '~> 0.9', '~> 0.9.6'
18
18
  s.add_dependency 'eac_ruby_utils', '~> 0.95', '>= 0.95.1'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyBase0
4
- VERSION = '0.16.3'
4
+ VERSION = '0.16.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.117.1
4
+ version: 0.118.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-19 00:00:00.000000000 Z
11
+ date: 2022-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -81,7 +81,7 @@ dependencies:
81
81
  version: '0.5'
82
82
  - - ">="
83
83
  - !ruby/object:Gem::Version
84
- version: 0.5.1
84
+ version: 0.5.2
85
85
  type: :runtime
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
@@ -91,7 +91,7 @@ dependencies:
91
91
  version: '0.5'
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
- version: 0.5.1
94
+ version: 0.5.2
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: avm-eac_ruby_base1
97
97
  requirement: !ruby/object:Gem::Requirement
@@ -197,7 +197,7 @@ dependencies:
197
197
  version: '0.16'
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
- version: 0.16.3
200
+ version: 0.16.4
201
201
  type: :runtime
202
202
  prerelease: false
203
203
  version_requirements: !ruby/object:Gem::Requirement
@@ -207,7 +207,7 @@ dependencies:
207
207
  version: '0.16'
208
208
  - - ">="
209
209
  - !ruby/object:Gem::Version
210
- version: 0.16.3
210
+ version: 0.16.4
211
211
  - !ruby/object:Gem::Dependency
212
212
  name: eac_ruby_gems_utils
213
213
  requirement: !ruby/object:Gem::Requirement
@@ -398,6 +398,7 @@ files:
398
398
  - lib/avm/tools/runner/app_src/ruby/bundler/gemfile_lock.rb
399
399
  - lib/avm/tools/runner/app_src/ruby/bundler/gemfile_lock/git.rb
400
400
  - lib/avm/tools/runner/app_src/ruby/bundler/incompatible.rb
401
+ - lib/avm/tools/runner/app_src/subs.rb
401
402
  - lib/avm/tools/runner/app_src/test.rb
402
403
  - lib/avm/tools/runner/app_src/update.rb
403
404
  - lib/avm/tools/runner/app_src/version_bump.rb
@@ -490,6 +491,7 @@ files:
490
491
  - sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/instance.rb
491
492
  - sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/runners.rb
492
493
  - sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/runners/base.rb
494
+ - sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/sources/base.rb
493
495
  - sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/version.rb
494
496
  - sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_host_spec.rb
495
497
  - sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_host_spec_files/apache_host_spec_no_ssl_content.conf
@@ -516,6 +518,7 @@ files:
516
518
  - sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/tasks_scheduler/systemd_unit.rb
517
519
  - sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner_with/bundle.rb
518
520
  - sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner_with/rails_environment.rb
521
+ - sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/sources/base.rb
519
522
  - sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/systemd_unit.rb
520
523
  - sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/systemd_unit/service.rb
521
524
  - sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/systemd_unit/tasks_scheduler_command.rb
@@ -534,6 +537,7 @@ files:
534
537
  - sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instance.rb
535
538
  - sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb
536
539
  - sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/rest_api.rb
540
+ - sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb
537
541
  - sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb
538
542
  - sub/avm-eac_redmine_base0/spec/rubocop_spec.rb
539
543
  - sub/avm-eac_redmine_base0/spec/spec_helper.rb
@@ -773,6 +777,8 @@ files:
773
777
  - sub/avm/lib/avm/sources/base/configuration.rb
774
778
  - sub/avm/lib/avm/sources/base/instance.rb
775
779
  - sub/avm/lib/avm/sources/base/parent.rb
780
+ - sub/avm/lib/avm/sources/base/subs.rb
781
+ - sub/avm/lib/avm/sources/base/subs_paths.rb
776
782
  - sub/avm/lib/avm/sources/base/testing.rb
777
783
  - sub/avm/lib/avm/sources/configuration.rb
778
784
  - sub/avm/lib/avm/sources/configuration/locale.rb
@@ -806,7 +812,6 @@ files:
806
812
  - sub/eac_cli/lib/eac_cli/definition/base_option.rb
807
813
  - sub/eac_cli/lib/eac_cli/definition/base_option/initialize_args_parser.rb
808
814
  - sub/eac_cli/lib/eac_cli/definition/boolean_option.rb
809
- - sub/eac_cli/lib/eac_cli/definition/help_formatter.rb
810
815
  - sub/eac_cli/lib/eac_cli/definition/positional_argument.rb
811
816
  - sub/eac_cli/lib/eac_cli/enum.rb
812
817
  - sub/eac_cli/lib/eac_cli/old_configs.rb
@@ -1,77 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner_with/help/builder/alternative'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module EacCli
7
- class Definition
8
- class HelpFormatter
9
- SEP = ' '
10
- IDENT = SEP * 2
11
- OPTION_DESC_SEP = IDENT * 2
12
-
13
- class << self
14
- def option_long(option)
15
- b = option.long
16
- b += '=VALUE' if option.argument?
17
- b
18
- end
19
-
20
- def option_short(option)
21
- b = option.short
22
- b += 'VALUE' if option.argument?
23
- b
24
- end
25
- end
26
-
27
- common_constructor :definition
28
-
29
- def positional_argument(positional)
30
- if positional.subcommand?
31
- ::EacCli::RunnerWith::Help::Builder::Alternative::SUBCOMMANDS_MACRO
32
- else
33
- r = "<#{positional.name}>"
34
- r += '...' if positional.repeat?
35
- r = "[#{r}]" if positional.optional?
36
- r
37
- end
38
- end
39
-
40
- def section(header, include_header = true)
41
- b = include_header ? "#{header.humanize}:\n" : ''
42
- b += send("self_#{header}") + "\n"
43
- # TO-DO: implement alternatives
44
- b
45
- end
46
-
47
- def self_options
48
- definition.options.map { |option| IDENT + option_definition(option) }.join("\n")
49
- end
50
-
51
- def self_usage
52
- IDENT + self_usage_arguments.join(SEP)
53
- end
54
-
55
- def self_usage_arguments
56
- [::EacCli::RunnerWith::Help::Builder::Alternative::PROGRAM_MACRO] +
57
- definition.options_argument.if_present([]) { |_v| ['[options]'] } +
58
- self_usage_arguments_options +
59
- self_usage_arguments_positional
60
- end
61
-
62
- def self_usage_arguments_options
63
- definition.options.select(&:show_on_usage?).map do |option|
64
- self.class.option_long(option)
65
- end
66
- end
67
-
68
- def self_usage_arguments_positional
69
- definition.positional.map { |p| positional_argument(p) }
70
- end
71
-
72
- def to_banner
73
- "#{definition.description}\n\n#{section('usage')}"
74
- end
75
- end
76
- end
77
- end