eac_tools 0.62.1 → 0.63.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +19 -19
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +2 -2
  5. data/sub/avm/lib/avm/data/package.rb +11 -0
  6. data/sub/avm/lib/avm/instances/data/files_unit.rb +2 -2
  7. data/sub/avm/lib/avm/version.rb +1 -1
  8. data/sub/avm-eac_postgresql_base0/Gemfile +3 -0
  9. data/sub/avm-eac_postgresql_base0/avm-eac_postgresql_base0.gemspec +3 -3
  10. data/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb +12 -12
  11. data/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/version.rb +1 -1
  12. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +3 -3
  13. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/unit/clear.rb +23 -0
  14. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/unit/dump.rb +25 -0
  15. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/unit/load.rb +25 -0
  16. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/unit.rb +41 -0
  17. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +1 -1
  18. data/sub/eac_cli/eac_cli.gemspec +1 -1
  19. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb +38 -21
  20. data/sub/eac_cli/lib/eac_cli/runner_with/help/list_section.rb +22 -0
  21. data/sub/eac_cli/lib/eac_cli/runner_with/help.rb +3 -4
  22. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb +5 -2
  23. data/sub/eac_cli/lib/eac_cli/version.rb +1 -1
  24. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help/list_section_spec.rb +21 -0
  25. data/sub/eac_ruby_utils/eac_ruby_utils.gemspec +1 -1
  26. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/base.rb +14 -1
  27. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/sub_file.rb +2 -11
  28. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  29. metadata +16 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34c1534552adb0067a16227d3ed1088b61edcc7a7696e64e4f4cf93d6b14e445
4
- data.tar.gz: a29798e301ac321eab2959b93856c2d76bc54577af236c7210fc127fc42d5df7
3
+ metadata.gz: e107f6aa74ee0e1e360adc2984d3c2a68aea45023eb92fd0c2612b3f99231fcd
4
+ data.tar.gz: 4ec44416302a162992af3a0410033895e2a3179847d285cdf295b4c1e303af10
5
5
  SHA512:
6
- metadata.gz: e6ad6ea56a99b6e12570f34c1400e21e93d300b88f3339d57881196dbdad10a14389434d2615364b69d200aad9c13e393d1f7fabf643572130c5d71c3908ebc2
7
- data.tar.gz: a63d5fc42089b05134fe217d3f242866812a47efaffac71e231c624e898c74724de4f2f42cc251a33c1d9b92a061b14e5d51a4e46add3a810a4bbadbc4223786
6
+ metadata.gz: a89a40d5ceefd62730be561a0bf3305bfacdcdf71ad65c77fbb9e2d04f6e31592e12a54efc2dfcac24f0a39bdd0fdeda2d8a94200c0fd9b8141f45a47b2b3469
7
+ data.tar.gz: 8e2546581a3d82e9d3d984894e35cc40941364e338c39433e9bfd9cb169222b9f3277042523293ea04e4aa87401d8b4b32f039552c03a101e29e33f61c0f6f0e
data/Gemfile.lock CHANGED
@@ -1,24 +1,24 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.62.1)
5
- avm (~> 0.68)
4
+ eac_tools (0.63.0)
5
+ avm (~> 0.69)
6
6
  avm-eac_asciidoctor_base0 (~> 0.19)
7
7
  avm-eac_generic_base0 (~> 0.12)
8
8
  avm-eac_latex_base0 (~> 0.3, >= 0.3.1)
9
9
  avm-eac_php_base0 (~> 0.4, >= 0.4.2)
10
- avm-eac_postgresql_base0 (~> 0.3)
10
+ avm-eac_postgresql_base0 (~> 0.4)
11
11
  avm-eac_python_base0 (~> 0.2, >= 0.2.1)
12
12
  avm-eac_rails_base0 (~> 0.10, >= 0.10.2)
13
13
  avm-eac_rails_base1 (~> 0.8, >= 0.8.4)
14
14
  avm-eac_redmine_base0 (~> 0.20, >= 0.20.1)
15
15
  avm-eac_redmine_plugin_base0 (~> 0.4)
16
16
  avm-eac_ruby_base1 (~> 0.30, >= 0.30.2)
17
- avm-eac_webapp_base0 (~> 0.15, >= 0.15.1)
17
+ avm-eac_webapp_base0 (~> 0.16)
18
18
  avm-eac_wordpress_base0 (~> 0.3, >= 0.3.1)
19
19
  avm-git (~> 0.13, >= 0.13.2)
20
20
  avm-tools (~> 0.145, >= 0.145.1)
21
- eac_ruby_utils (~> 0.112)
21
+ eac_ruby_utils (~> 0.113)
22
22
 
23
23
  PATH
24
24
  remote: sub/aranha-parsers
@@ -67,9 +67,9 @@ PATH
67
67
  PATH
68
68
  remote: sub/avm-eac_postgresql_base0
69
69
  specs:
70
- avm-eac_postgresql_base0 (0.3.0)
71
- avm (~> 0.68)
72
- eac_ruby_utils (~> 0.112)
70
+ avm-eac_postgresql_base0 (0.4.0)
71
+ avm (~> 0.69)
72
+ eac_ruby_utils (~> 0.113)
73
73
 
74
74
  PATH
75
75
  remote: sub/avm-eac_python_base0
@@ -134,13 +134,13 @@ PATH
134
134
  PATH
135
135
  remote: sub/avm-eac_webapp_base0
136
136
  specs:
137
- avm-eac_webapp_base0 (0.15.1)
138
- avm (~> 0.68)
137
+ avm-eac_webapp_base0 (0.16.0)
138
+ avm (~> 0.69)
139
139
  avm-eac_generic_base0 (~> 0.12)
140
- avm-eac_postgresql_base0 (~> 0.3)
140
+ avm-eac_postgresql_base0 (~> 0.4)
141
141
  avm-eac_ubuntu_base0 (~> 0.4, >= 0.4.2)
142
142
  avm-files (~> 0.6, >= 0.6.2)
143
- eac_ruby_utils (~> 0.112)
143
+ eac_ruby_utils (~> 0.113)
144
144
 
145
145
  PATH
146
146
  remote: sub/avm-eac_wordpress_base0
@@ -191,14 +191,14 @@ PATH
191
191
  PATH
192
192
  remote: sub/avm
193
193
  specs:
194
- avm (0.68.0)
194
+ avm (0.69.0)
195
195
  aranha-parsers (~> 0.17, >= 0.17.1)
196
- eac_cli (~> 0.31)
196
+ eac_cli (~> 0.32)
197
197
  eac_config (~> 0.12)
198
198
  eac_docker (~> 0.7)
199
199
  eac_fs (~> 0.16)
200
200
  eac_git (~> 0.14, >= 0.14.1)
201
- eac_ruby_utils (~> 0.112)
201
+ eac_ruby_utils (~> 0.113)
202
202
  eac_templates (~> 0.5)
203
203
  filesize (~> 0.2)
204
204
  htmlbeautifier (~> 1.4, >= 1.4.2)
@@ -207,10 +207,10 @@ PATH
207
207
  PATH
208
208
  remote: sub/eac_cli
209
209
  specs:
210
- eac_cli (0.31.0)
210
+ eac_cli (0.32.0)
211
211
  colorize (~> 0.8, >= 0.8.1)
212
212
  eac_config (~> 0.12)
213
- eac_ruby_utils (~> 0.112)
213
+ eac_ruby_utils (~> 0.113)
214
214
 
215
215
  PATH
216
216
  remote: sub/eac_config
@@ -261,9 +261,9 @@ PATH
261
261
  PATH
262
262
  remote: sub/eac_ruby_utils
263
263
  specs:
264
- eac_ruby_utils (0.112.0)
264
+ eac_ruby_utils (0.113.0)
265
265
  activesupport (>= 4, < 7)
266
- addressable (~> 2.8, >= 2.8.1)
266
+ addressable (~> 2.8, >= 2.8.4)
267
267
  bundler
268
268
  filesize (~> 0.2)
269
269
  net-ssh (~> 4.2)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.62.1'
4
+ VERSION = '0.63.0'
5
5
  end
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.17', '>= 0.17.1'
16
- s.add_dependency 'eac_cli', '~> 0.31'
16
+ s.add_dependency 'eac_cli', '~> 0.32'
17
17
  s.add_dependency 'eac_config', '~> 0.12'
18
18
  s.add_dependency 'eac_docker', '~> 0.7'
19
19
  s.add_dependency 'eac_fs', '~> 0.16'
20
20
  s.add_dependency 'eac_git', '~> 0.14', '>= 0.14.1'
21
- s.add_dependency 'eac_ruby_utils', '~> 0.112'
21
+ s.add_dependency 'eac_ruby_utils', '~> 0.113'
22
22
  s.add_dependency 'eac_templates', '~> 0.5'
23
23
  s.add_dependency 'filesize', '~> 0.2'
24
24
  s.add_dependency 'htmlbeautifier', '~> 1.4', '>= 1.4.2'
@@ -45,9 +45,20 @@ module Avm
45
45
  end
46
46
  end
47
47
 
48
+ # @param id [Symbol]
49
+ # @return [Avm::Data::Unit]
50
+ def unit(identifier)
51
+ units[identifier.to_sym] || raise("No unit found with identifier \"#{identifier}\"")
52
+ end
53
+
48
54
  def units
49
55
  @units ||= {}
50
56
  end
57
+
58
+ # @return [Enumerable<String>]
59
+ def units_ids
60
+ units.keys
61
+ end
51
62
  end
52
63
  end
53
64
  end
@@ -17,7 +17,7 @@ module Avm
17
17
  self.options = self.class.lists.option.hash_keys_validate!(options)
18
18
  end
19
19
 
20
- before_load :clear_files
20
+ before_load :clear
21
21
 
22
22
  # @return [Pathname]
23
23
  def files_path
@@ -33,7 +33,7 @@ module Avm
33
33
  instance_command('tar', '-xzf', '-', '-C', files_path)
34
34
  end
35
35
 
36
- def clear_files
36
+ def clear
37
37
  infom "Removing all files under #{files_path}..."
38
38
  instance_command('mkdir', '-p', files_path).execute!
39
39
  instance_command('find', files_path, '-mindepth', 1, '-delete').execute!
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.68.0'
4
+ VERSION = '0.69.0'
5
5
  end
@@ -3,3 +3,6 @@
3
3
  source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
+
7
+ local_gemfile = ::File.join(::File.dirname(__FILE__), 'Gemfile.local')
8
+ eval_gemfile local_gemfile if ::File.exist?(local_gemfile)
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.68'
16
- s.add_dependency 'eac_ruby_utils', '~> 0.112'
15
+ s.add_dependency 'avm', '~> 0.69'
16
+ s.add_dependency 'eac_ruby_utils', '~> 0.113'
17
17
 
18
- s.add_development_dependency 'eac_ruby_gem_support', '~> 0.4'
18
+ s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
19
19
  end
@@ -12,7 +12,18 @@ module Avm
12
12
  TABLES_SQL = "select schemaname || '#{TABLE_PARTS_SEPARATOR}' || tablename from " \
13
13
  "pg_tables where schemaname = '#{SCHEMA_VAR}'"
14
14
 
15
- before_load :clear_database
15
+ before_load :clear
16
+
17
+ def clear
18
+ info 'Clearing database (Dropping all tables)...'
19
+ ts = tables
20
+ if ts.empty?
21
+ info 'Database has no tables'
22
+ else
23
+ info "Removing #{ts.count} table(s)..."
24
+ run_sql(drop_tables_sql(ts))
25
+ end
26
+ end
16
27
 
17
28
  def dump_command
18
29
  instance.dump_gzip_command
@@ -30,17 +41,6 @@ module Avm
30
41
  'drop table ' + table_list.map(&:to_s).join(', ') + ' cascade'
31
42
  end
32
43
 
33
- def clear_database
34
- info 'Clearing database (Dropping all tables)...'
35
- ts = tables
36
- if ts.empty?
37
- info 'Database has no tables'
38
- else
39
- info "Removing #{ts.count} table(s)..."
40
- run_sql(drop_tables_sql(ts))
41
- end
42
- end
43
-
44
44
  # @param parts [Array<String>, Strings]
45
45
  # @return [String]
46
46
  def join_table_parts(parts)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacPostgresqlBase0
5
- VERSION = '0.3.0'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
@@ -12,12 +12,12 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,template}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.68'
15
+ s.add_dependency 'avm', '~> 0.69'
16
16
  s.add_dependency 'avm-eac_generic_base0', '~> 0.12'
17
- s.add_dependency 'avm-eac_postgresql_base0', '~> 0.3'
17
+ s.add_dependency 'avm-eac_postgresql_base0', '~> 0.4'
18
18
  s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.4', '>= 0.4.2'
19
19
  s.add_dependency 'avm-files', '~> 0.6', '>= 0.6.2'
20
- s.add_dependency 'eac_ruby_utils', '~> 0.112'
20
+ s.add_dependency 'eac_ruby_utils', '~> 0.113'
21
21
 
22
22
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.2'
23
23
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ module Runners
9
+ class Data
10
+ class Unit
11
+ class Clear
12
+ runner_with :help
13
+
14
+ def run
15
+ runner_context.call(:data_unit).clear
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ module Runners
9
+ class Data
10
+ class Unit
11
+ class Dump
12
+ runner_with :help do
13
+ pos_arg :dump_path
14
+ end
15
+
16
+ def run
17
+ nyi
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ module Runners
9
+ class Data
10
+ class Unit
11
+ class Load
12
+ runner_with :help do
13
+ pos_arg :dump_path
14
+ end
15
+
16
+ def run
17
+ nyi
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ module Runners
9
+ class Data
10
+ class Unit
11
+ require_sub __FILE__
12
+ runner_with :help, :subcommands do
13
+ pos_arg :identifier
14
+ subcommands
15
+ end
16
+
17
+ # @return [Enumerable<String>]
18
+ def available_units_ids
19
+ data_package.units_ids
20
+ end
21
+
22
+ # @return [Avm::Instances::Data::Package]
23
+ def data_package
24
+ runner_context.call(:instance).data_package
25
+ end
26
+
27
+ # @return [Avm::Instances::Data::Unit]
28
+ def data_unit
29
+ data_package.unit(parsed.identifier)
30
+ end
31
+
32
+ # @return [Hash<String, Enumerable<String>]
33
+ def help_extra_text
34
+ super.merge('Available units' => available_units_ids)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacWebappBase0
5
- VERSION = '0.15.1'
5
+ VERSION = '0.16.0'
6
6
  end
7
7
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.add_dependency 'colorize', '~> 0.8', '>= 0.8.1'
16
16
  s.add_dependency 'eac_config', '~> 0.12'
17
- s.add_dependency 'eac_ruby_utils', '~> 0.112'
17
+ s.add_dependency 'eac_ruby_utils', '~> 0.113'
18
18
 
19
19
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
20
20
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_cli/runner_with/help/list_section'
3
4
  require 'eac_ruby_utils/core_ext'
4
5
 
5
6
  module EacCli
@@ -9,9 +10,8 @@ module EacCli
9
10
  require_sub __FILE__, require_dependency: true
10
11
  common_constructor :runner
11
12
 
12
- SEP = ' '
13
- IDENT = SEP * 2
14
- OPTION_DESC_SEP = IDENT * 2
13
+ OPTION_DESC_SEP = ::EacCli::RunnerWith::Help::ListSection::IDENTATION * 2
14
+ SECTION_SEPARATOR = "\n"
15
15
 
16
16
  class << self
17
17
  def option_long(option)
@@ -35,7 +35,7 @@ module EacCli
35
35
  end
36
36
 
37
37
  def word_separator
38
- SEP
38
+ ::EacCli::RunnerWith::Help::ListSection::WORD_SEPARATOR
39
39
  end
40
40
  end
41
41
 
@@ -45,36 +45,53 @@ module EacCli
45
45
  runner.class.runner_definition
46
46
  end
47
47
 
48
+ # @return [String, nil]
49
+ def extra_section
50
+ ess = extra_sections
51
+ return nil if ess.none?
52
+
53
+ ess.join(SECTION_SEPARATOR)
54
+ end
55
+
56
+ # @return [Enumerable<String>]
57
+ def extra_sections
58
+ runner.if_respond(:help_extra_text, []) do |v|
59
+ if v.is_a?(::Hash)
60
+ v.map do |title, lines|
61
+ ::EacCli::RunnerWith::Help::ListSection.new(title, lines)
62
+ end
63
+ else
64
+ [v.to_s]
65
+ end
66
+ end
67
+ end
68
+
48
69
  def option_definition(option)
49
70
  [self.class.option_usage_full(option), option.description,
50
71
  option.default_value? ? "[Default: \"#{option.default_value}\"]" : nil]
51
72
  .reject(&:blank?).join(OPTION_DESC_SEP)
52
73
  end
53
74
 
54
- def section(header, include_header = true)
55
- b = include_header ? "#{header.humanize}:\n" : ''
56
- b += send("self_#{header}") + "\n"
57
- definition.alternatives.each do |alternative|
58
- b += IDENT + self.alternative(alternative) + "\n"
59
- end
60
- b
61
- end
62
-
75
+ # @return [String]
63
76
  def options_section
64
- "Options:\n" +
65
- definition.alternatives.flat_map(&:options)
66
- .map { |option| IDENT + option_definition(option) + "\n" }.join
77
+ ::EacCli::RunnerWith::Help::ListSection.new(
78
+ 'Options',
79
+ definition.alternatives.flat_map(&:options).map { |option| option_definition(option) }
80
+ )
67
81
  end
68
82
 
83
+ # @return [String]
69
84
  def usage_section
70
- "Usage:\n" +
71
- definition.alternatives.map do |alternative|
72
- IDENT + self.alternative(alternative) + "\n"
73
- end.join
85
+ ::EacCli::RunnerWith::Help::ListSection.new(
86
+ 'Usage',
87
+ definition.alternatives.map { |alternative| self.alternative(alternative) }
88
+ )
74
89
  end
75
90
 
76
91
  def to_s
77
- "#{definition.description}\n\n#{usage_section}\n#{options_section}\n"
92
+ r = ["#{definition.description}\n", usage_section, options_section]
93
+ .map { |s| "#{s}#{SECTION_SEPARATOR}" }.join
94
+ extra_section.if_present(r) { |v| r + v }
78
95
  end
79
96
  end
80
97
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacCli
6
+ module RunnerWith
7
+ module Help
8
+ class ListSection
9
+ WORD_SEPARATOR = ' '
10
+ IDENTATION = WORD_SEPARATOR * 2
11
+
12
+ common_constructor :title, :items
13
+
14
+ # @return [String]
15
+ def to_s
16
+ (["#{title}:"] + items.map { |line| "#{IDENTATION}#{line}" })
17
+ .map { |line| "#{line}\n" }.join
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -6,7 +6,7 @@ require 'eac_ruby_utils/core_ext'
6
6
  module EacCli
7
7
  module RunnerWith
8
8
  module Help
9
- require_sub __FILE__, require_dependency: true
9
+ require_sub __FILE__, require_mode: :kernel
10
10
  common_concern do
11
11
  include ::EacCli::Runner
12
12
 
@@ -27,10 +27,9 @@ module EacCli
27
27
  raise ::EacCli::Runner::Exit
28
28
  end
29
29
 
30
+ # @return [String]
30
31
  def help_text
31
- r = ::EacCli::RunnerWith::Help::Builder.new(self).to_s
32
- r += help_extra_text if respond_to?(:help_extra_text)
33
- r
32
+ ::EacCli::RunnerWith::Help::Builder.new(self).to_s
34
33
  end
35
34
 
36
35
  def show_help?
@@ -51,9 +51,12 @@ module EacCli
51
51
  available_subcommands.keys.sort.join(', ')
52
52
  end
53
53
 
54
+ # @return [Hash<String, Enumerable<String>]
54
55
  def help_extra_text
55
- (['Subcommands:'] + available_subcommands.keys.sort.map { |s| " #{s}" })
56
- .map { |v| "#{v}\n" }.join
56
+ {
57
+ 'Subcommands' =>
58
+ available_subcommands.keys.sort
59
+ }
57
60
  end
58
61
 
59
62
  def method_missing(method_name, *arguments, &block)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacCli
4
- VERSION = '0.31.0'
4
+ VERSION = '0.32.0'
5
5
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/runner_with/help/list_section'
4
+
5
+ ::RSpec.describe ::EacCli::RunnerWith::Help::ListSection do
6
+ {
7
+ ['Options', ['Option A', 'Option B']] => <<~TEXT
8
+ Options:
9
+ Option A
10
+ Option B
11
+ TEXT
12
+ }.each do |source, expected|
13
+ context "when source is #{source}" do
14
+ let(:instance) { described_class.new(*source) }
15
+
16
+ it do
17
+ expect(instance.to_s).to eq(expected)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.files = Dir['{lib}/**/*', 'MIT-LICENSE', 'README.rdoc']
17
17
 
18
18
  s.add_dependency 'activesupport', '>= 4', '< 7'
19
- s.add_dependency 'addressable', '~> 2.8', '>= 2.8.1'
19
+ s.add_dependency 'addressable', '~> 2.8', '>= 2.8.4'
20
20
  s.add_dependency 'bundler'
21
21
  s.add_dependency 'filesize', '~> 0.2'
22
22
  s.add_dependency 'net-ssh', '~> 4.2'
@@ -15,13 +15,17 @@ module EacRubyUtils
15
15
  }.freeze
16
16
 
17
17
  include ::EacRubyUtils::Listable
18
- lists.add_symbol :option, :base, :include_modules, :require_dependency
18
+ lists.add_symbol :option, :base, :include_modules, :require_dependency, :require_mode
19
+ lists.add_symbol :require_mode, :active_support, :autoload, :kernel
19
20
 
20
21
  attr_reader :file, :options
21
22
 
22
23
  def initialize(file, options = {})
23
24
  @file = file
24
25
  @options = self.class.lists.option.hash_keys_validate!(options)
26
+ return unless options[OPTION_REQUIRE_MODE]
27
+
28
+ self.class.lists.require_mode.value_validate!(options[OPTION_REQUIRE_MODE])
25
29
  end
26
30
 
27
31
  # @return [Boolean]
@@ -54,6 +58,15 @@ module EacRubyUtils
54
58
  " \"#{options[OPTION_INCLUDE_MODULES]}\""
55
59
  end
56
60
 
61
+ # @return [Symbol]
62
+ def require_mode
63
+ return options[OPTION_REQUIRE_MODE] if options[OPTION_REQUIRE_MODE]
64
+ return REQUIRE_MODE_ACTIVE_SUPPORT if active_support_require?
65
+ return REQUIRE_MODE_AUTOLOAD if base?
66
+
67
+ REQUIRE_MODE_KERNEL
68
+ end
69
+
57
70
  def require_sub_files
58
71
  sub_files.each(&:require_file)
59
72
  end
@@ -38,26 +38,17 @@ module EacRubyUtils
38
38
  end
39
39
 
40
40
  def require_file
41
- active_support_require || autoload_require || kernel_require
41
+ send("#{owner.require_mode}_require")
42
42
  end
43
43
 
44
44
  private
45
45
 
46
46
  def active_support_require
47
- return false unless owner.active_support_require?
48
-
49
47
  ::Kernel.require_dependency(path)
50
- true
51
48
  end
52
49
 
53
50
  def autoload_require
54
- return false unless owner.base?
55
-
56
- basename = ::File.basename(path, '.*')
57
- return false if basename.start_with?('_')
58
-
59
- owner.base.autoload ::ActiveSupport::Inflector.camelize(basename), path
60
- true
51
+ owner.base.autoload ::ActiveSupport::Inflector.camelize(::File.basename(path, '.*')), path
61
52
  end
62
53
 
63
54
  def kernel_require
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.112.0'
4
+ VERSION = '0.113.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.62.1
4
+ version: 0.63.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-09 00:00:00.000000000 Z
11
+ date: 2023-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.68'
19
+ version: '0.69'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.68'
26
+ version: '0.69'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: avm-eac_asciidoctor_base0
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -98,14 +98,14 @@ dependencies:
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: '0.3'
101
+ version: '0.4'
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: '0.3'
108
+ version: '0.4'
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: avm-eac_python_base0
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -226,20 +226,14 @@ dependencies:
226
226
  requirements:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: '0.15'
230
- - - ">="
231
- - !ruby/object:Gem::Version
232
- version: 0.15.1
229
+ version: '0.16'
233
230
  type: :runtime
234
231
  prerelease: false
235
232
  version_requirements: !ruby/object:Gem::Requirement
236
233
  requirements:
237
234
  - - "~>"
238
235
  - !ruby/object:Gem::Version
239
- version: '0.15'
240
- - - ">="
241
- - !ruby/object:Gem::Version
242
- version: 0.15.1
236
+ version: '0.16'
243
237
  - !ruby/object:Gem::Dependency
244
238
  name: avm-eac_wordpress_base0
245
239
  requirement: !ruby/object:Gem::Requirement
@@ -306,14 +300,14 @@ dependencies:
306
300
  requirements:
307
301
  - - "~>"
308
302
  - !ruby/object:Gem::Version
309
- version: '0.112'
303
+ version: '0.113'
310
304
  type: :runtime
311
305
  prerelease: false
312
306
  version_requirements: !ruby/object:Gem::Requirement
313
307
  requirements:
314
308
  - - "~>"
315
309
  - !ruby/object:Gem::Version
316
- version: '0.112'
310
+ version: '0.113'
317
311
  - !ruby/object:Gem::Dependency
318
312
  name: eac_ruby_gem_support
319
313
  requirement: !ruby/object:Gem::Requirement
@@ -885,6 +879,10 @@ files:
885
879
  - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data.rb
886
880
  - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
887
881
  - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/load.rb
882
+ - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/unit.rb
883
+ - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/unit/clear.rb
884
+ - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/unit/dump.rb
885
+ - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/unit/load.rb
888
886
  - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy.rb
889
887
  - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources.rb
890
888
  - sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources/base.rb
@@ -1370,6 +1368,7 @@ files:
1370
1368
  - sub/eac_cli/lib/eac_cli/runner_with/help.rb
1371
1369
  - sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb
1372
1370
  - sub/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb
1371
+ - sub/eac_cli/lib/eac_cli/runner_with/help/list_section.rb
1373
1372
  - sub/eac_cli/lib/eac_cli/runner_with/input.rb
1374
1373
  - sub/eac_cli/lib/eac_cli/runner_with/output.rb
1375
1374
  - sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb
@@ -1387,6 +1386,7 @@ files:
1387
1386
  - sub/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb
1388
1387
  - sub/eac_cli/spec/lib/eac_cli/runner_spec.rb
1389
1388
  - sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation_spec.rb
1389
+ - sub/eac_cli/spec/lib/eac_cli/runner_with/help/list_section_spec.rb
1390
1390
  - sub/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb
1391
1391
  - sub/eac_cli/spec/lib/eac_cli/runner_with/output_spec.rb
1392
1392
  - sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb