eac_tools 0.66.0 → 0.67.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +28 -28
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +2 -2
  5. data/sub/avm/lib/avm/data/clearer.rb +8 -6
  6. data/sub/avm/lib/avm/data/package/base_performer.rb +38 -0
  7. data/sub/avm/lib/avm/data/package/clear.rb +3 -4
  8. data/sub/avm/lib/avm/data/performer.rb +49 -0
  9. data/sub/avm/lib/avm/instances/runner.rb +1 -1
  10. data/sub/avm/lib/avm/sources/runner.rb +2 -0
  11. data/sub/avm/lib/avm/version.rb +1 -1
  12. data/sub/avm-eac_ubuntu_base0/avm-eac_ubuntu_base0.gemspec +3 -3
  13. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/runners/base.rb +2 -0
  14. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/version.rb +1 -1
  15. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +3 -3
  16. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +2 -2
  17. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +1 -1
  18. data/sub/avm-tools/avm-tools.gemspec +2 -2
  19. data/sub/avm-tools/lib/avm/tools/runner/instance/data/clear.rb +1 -1
  20. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/dump.rb +2 -2
  21. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/load.rb +1 -1
  22. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit.rb +2 -5
  23. data/sub/avm-tools/lib/avm/tools/runner/instance/data.rb +2 -0
  24. data/sub/avm-tools/lib/avm/tools/runner_with/include_exclude.rb +23 -0
  25. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_clear.rb +11 -1
  26. data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
  27. data/sub/eac_cli/eac_cli.gemspec +1 -1
  28. data/sub/eac_cli/lib/eac_cli/definition/alternative.rb +11 -7
  29. data/sub/eac_cli/lib/eac_cli/definition/base_option/initialize_args_parser.rb +2 -1
  30. data/sub/eac_cli/lib/eac_cli/definition/base_option.rb +1 -1
  31. data/sub/eac_cli/lib/eac_cli/definition/boolean_option.rb +2 -1
  32. data/sub/eac_cli/lib/eac_cli/definition/error.rb +8 -0
  33. data/sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb +6 -1
  34. data/sub/eac_cli/lib/eac_cli/runner/context.rb +22 -3
  35. data/sub/eac_cli/lib/eac_cli/runner/context_responders/base.rb +24 -0
  36. data/sub/eac_cli/lib/eac_cli/runner/context_responders/parent.rb +27 -0
  37. data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner.rb +20 -0
  38. data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner_missing_method.rb +32 -0
  39. data/sub/eac_cli/lib/eac_cli/runner/context_responders/set.rb +44 -0
  40. data/sub/eac_cli/lib/eac_cli/runner/context_responders.rb +11 -0
  41. data/sub/eac_cli/lib/eac_cli/runner/for_context.rb +40 -0
  42. data/sub/eac_cli/lib/eac_cli/runner/instance_methods.rb +5 -3
  43. data/sub/eac_cli/lib/eac_cli/runner.rb +1 -0
  44. data/sub/eac_cli/lib/eac_cli/version.rb +1 -1
  45. data/sub/eac_cli/spec/lib/eac_cli/runner/for_context_spec.rb +79 -0
  46. data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +1 -0
  47. data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +3 -3
  48. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/contexts.rb +52 -0
  49. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/prepend.rb +17 -4
  50. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +1 -39
  51. data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  52. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_abstract.rb +17 -6
  53. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/array_accessor.rb +25 -0
  54. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/base_accessor.rb +57 -0
  55. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/boolean_accessor.rb +3 -3
  56. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/class_methods.rb +2 -2
  57. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/common_accessor.rb +5 -5
  58. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable/array_accessor.rb → acts_as_immutable/enumerable_accessor.rb} +11 -8
  59. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/hash_accessor.rb +5 -5
  60. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/instance_methods.rb +1 -1
  61. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/set_accessor.rb +25 -0
  62. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable.rb → acts_as_immutable.rb} +1 -1
  63. data/sub/eac_ruby_utils/lib/eac_ruby_utils/enumerables_methods.rb +42 -0
  64. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/base.rb +34 -0
  65. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/hash.rb +20 -0
  66. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/set.rb +19 -0
  67. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable.rb +9 -0
  68. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_immutable.rb +10 -0
  69. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/immutable.rb +3 -2
  70. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb +9 -0
  71. data/sub/eac_ruby_utils/lib/eac_ruby_utils/unimplemented_method_error.rb +6 -0
  72. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  73. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_abstract_spec.rb +73 -7
  74. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/{immutable → acts_as_immutable}/array_accessor_spec.rb +11 -3
  75. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/common_accessor_spec.rb +57 -0
  76. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/{immutable → acts_as_immutable}/hash_accessor_spec.rb +3 -3
  77. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/set_accessor_spec.rb +43 -0
  78. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enumerables_methods_spec.rb +50 -0
  79. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/hash_spec.rb +57 -0
  80. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/set_spec.rb +57 -0
  81. metadata +47 -20
  82. data/sub/eac_ruby_utils/lib/eac_ruby_utils/immutable/base_accessor.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c536775fa8861ae479a017b51548aac1edb4ca67540603a84a5ba6a622650e8
4
- data.tar.gz: 7466f8bcd0714b00a722cca444360ea32e7431d6797d4d2f3047ad91e97d135f
3
+ metadata.gz: 4eaf414401edd6cd32a363aa20ae12bfd3641bfc0c11d8007911f0dfce9738e0
4
+ data.tar.gz: 56e6df8b4ac42ed7f10cf7b3121d17cc825ce3c4a8e46018101f2ce71316f654
5
5
  SHA512:
6
- metadata.gz: 74e066ea30d9e2b053b997284cfc00a8b94d61f5d6b0341a0038174e002e9a1645a426921f8905a3d316de9c2c1bc8706aa9013edfad48a956b6cf9b99a919e2
7
- data.tar.gz: 50ba5e89a300b4e96c9de017a81537ad4d5f31cb84104f869b0d276120cff2e182c1b0c0a52ea81816a7e7e99b9f6dcd4b89a25040881326aeb463676a1c593d
6
+ metadata.gz: c24f42e05720c894b99c1757654fe045ce0f306f2e2f4c5ef4fdc9477f048aa227e5d4e58c6a1d97ff90ebeede013c331152fbfa354def48591cb6b213a47ab0
7
+ data.tar.gz: fd0260cb92aee69652efbab55ef85f73ab6b442966d8aeaf0a09b522db6a6dd59dd5a39c6490255878f24c801c1f9557888017c75b6ec66bc2f4ee9f045f41c2
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.66.0)
5
- avm (~> 0.72)
4
+ eac_tools (0.67.0)
5
+ avm (~> 0.73)
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)
@@ -14,11 +14,11 @@ PATH
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.3)
17
- avm-eac_webapp_base0 (~> 0.17, >= 0.17.1)
17
+ avm-eac_webapp_base0 (~> 0.17, >= 0.17.2)
18
18
  avm-eac_wordpress_base0 (~> 0.3, >= 0.3.1)
19
19
  avm-git (~> 0.13, >= 0.13.2)
20
- avm-tools (~> 0.148)
21
- eac_ruby_utils (~> 0.116)
20
+ avm-tools (~> 0.149)
21
+ eac_ruby_utils (~> 0.117)
22
22
 
23
23
  PATH
24
24
  remote: sub/aranha-parsers
@@ -127,21 +127,21 @@ PATH
127
127
  PATH
128
128
  remote: sub/avm-eac_ubuntu_base0
129
129
  specs:
130
- avm-eac_ubuntu_base0 (0.4.2)
131
- avm (~> 0.67, >= 0.67.1)
132
- eac_ruby_utils (~> 0.112)
133
- eac_templates (~> 0.3, >= 0.3.2)
130
+ avm-eac_ubuntu_base0 (0.4.3)
131
+ avm (~> 0.73)
132
+ eac_ruby_utils (~> 0.117)
133
+ eac_templates (~> 0.5)
134
134
 
135
135
  PATH
136
136
  remote: sub/avm-eac_webapp_base0
137
137
  specs:
138
- avm-eac_webapp_base0 (0.17.1)
139
- avm (~> 0.72)
138
+ avm-eac_webapp_base0 (0.17.2)
139
+ avm (~> 0.73)
140
140
  avm-eac_generic_base0 (~> 0.12)
141
141
  avm-eac_postgresql_base0 (~> 0.5, >= 0.5.1)
142
- avm-eac_ubuntu_base0 (~> 0.4, >= 0.4.2)
142
+ avm-eac_ubuntu_base0 (~> 0.4, >= 0.4.3)
143
143
  avm-files (~> 0.6, >= 0.6.2)
144
- eac_ruby_utils (~> 0.116)
144
+ eac_ruby_utils (~> 0.117)
145
145
 
146
146
  PATH
147
147
  remote: sub/avm-eac_wordpress_base0
@@ -174,9 +174,9 @@ PATH
174
174
  PATH
175
175
  remote: sub/avm-tools
176
176
  specs:
177
- avm-tools (0.148.0)
177
+ avm-tools (0.149.0)
178
178
  aranha-parsers (~> 0.18)
179
- avm (~> 0.72)
179
+ avm (~> 0.73)
180
180
  avm-eac_ruby_base1 (~> 0.30, >= 0.30.3)
181
181
  avm-eac_ubuntu_base0 (~> 0.4, >= 0.4.2)
182
182
  avm-files (~> 0.6, >= 0.6.2)
@@ -184,7 +184,7 @@ PATH
184
184
  clipboard (~> 1.3, >= 1.3.6)
185
185
  curb (~> 0.9, >= 0.9.11)
186
186
  eac_git (~> 0.14, >= 0.14.1)
187
- eac_ruby_base0 (~> 0.18)
187
+ eac_ruby_base0 (~> 0.19)
188
188
  eac_templates (~> 0.5)
189
189
  git (~> 1.18)
190
190
  ruby-progressbar (~> 1.13)
@@ -192,14 +192,14 @@ PATH
192
192
  PATH
193
193
  remote: sub/avm
194
194
  specs:
195
- avm (0.72.0)
195
+ avm (0.73.0)
196
196
  aranha-parsers (~> 0.18)
197
- eac_cli (~> 0.33, >= 0.33.1)
197
+ eac_cli (~> 0.35)
198
198
  eac_config (~> 0.12)
199
199
  eac_docker (~> 0.7)
200
200
  eac_fs (~> 0.16)
201
201
  eac_git (~> 0.14, >= 0.14.1)
202
- eac_ruby_utils (~> 0.116)
202
+ eac_ruby_utils (~> 0.117)
203
203
  eac_templates (~> 0.5)
204
204
  filesize (~> 0.2)
205
205
  htmlbeautifier (~> 1.4, >= 1.4.2)
@@ -208,10 +208,10 @@ PATH
208
208
  PATH
209
209
  remote: sub/eac_cli
210
210
  specs:
211
- eac_cli (0.34.0)
211
+ eac_cli (0.35.0)
212
212
  colorize (~> 0.8, >= 0.8.1)
213
213
  eac_config (~> 0.12)
214
- eac_ruby_utils (~> 0.116)
214
+ eac_ruby_utils (~> 0.117)
215
215
 
216
216
  PATH
217
217
  remote: sub/eac_config
@@ -265,16 +265,16 @@ PATH
265
265
  PATH
266
266
  remote: sub/eac_ruby_base0
267
267
  specs:
268
- eac_ruby_base0 (0.18.0)
269
- avm-eac_ruby_base1 (~> 0.30, >= 0.30.2)
270
- eac_cli (~> 0.31)
268
+ eac_ruby_base0 (0.19.0)
269
+ avm-eac_ruby_base1 (~> 0.30, >= 0.30.3)
270
+ eac_cli (~> 0.35)
271
271
  eac_fs (~> 0.16)
272
- eac_ruby_utils (~> 0.112)
272
+ eac_ruby_utils (~> 0.117)
273
273
 
274
274
  PATH
275
275
  remote: sub/eac_ruby_utils
276
276
  specs:
277
- eac_ruby_utils (0.116.0)
277
+ eac_ruby_utils (0.117.0)
278
278
  activesupport (>= 4, < 7)
279
279
  addressable (~> 2.8, >= 2.8.4)
280
280
  bundler
@@ -299,7 +299,7 @@ GEM
299
299
  zeitwerk (~> 2.3)
300
300
  addressable (2.8.4)
301
301
  public_suffix (>= 2.0.2, < 6.0)
302
- asciidoctor (2.0.18)
302
+ asciidoctor (2.0.20)
303
303
  ast (2.4.2)
304
304
  clipboard (1.3.6)
305
305
  colorize (0.8.1)
@@ -340,7 +340,7 @@ GEM
340
340
  minitest (5.18.0)
341
341
  multipart-post (2.3.0)
342
342
  net-ssh (4.2.0)
343
- nokogiri (1.15.0-x86_64-linux)
343
+ nokogiri (1.15.1-x86_64-linux)
344
344
  racc (~> 1.4)
345
345
  ofx-parser (1.1.0)
346
346
  hpricot (>= 0.6)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.66.0'
4
+ VERSION = '0.67.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.18'
16
- s.add_dependency 'eac_cli', '~> 0.33', '>= 0.33.1'
16
+ s.add_dependency 'eac_cli', '~> 0.35'
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.116'
21
+ s.add_dependency 'eac_ruby_utils', '~> 0.117'
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'
@@ -1,17 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/data/performer'
3
4
  require 'eac_ruby_utils/core_ext'
4
5
 
5
6
  module Avm
6
7
  module Data
7
- class Clearer
8
- enable_speaker
8
+ class Clearer < ::Avm::Data::Performer
9
+ def cannot_perform_reason
10
+ nil
11
+ end
9
12
 
10
- common_constructor :storage
13
+ protected
11
14
 
12
- # @return [self]
13
- def perform
14
- storage.clear
15
+ def internal_perform
16
+ data_owner.clear(*include_excludes_arguments)
15
17
  end
16
18
  end
17
19
  end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Data
7
+ class Package
8
+ class BasePerformer
9
+ acts_as_abstract :result
10
+ enable_speaker
11
+ enable_listable
12
+ lists.add_symbol :option, :excludes, :includes
13
+ common_constructor :package, :options, default: [{}] do
14
+ self.options = ::Avm::Data::Package::BasePerformer.lists.option
15
+ .hash_keys_validate!(options)
16
+ end
17
+
18
+ # @return [Set<Symbol>]
19
+ def excludes
20
+ ::Set.new((options[OPTION_EXCLUDES] || []).map(&:to_sym))
21
+ end
22
+
23
+ # @return [Set<Symbol>]
24
+ def includes
25
+ ::Set.new((options[OPTION_INCLUDES] || []).map(&:to_sym))
26
+ end
27
+
28
+ # @return [Hash<Symbol, Avm::Data::Unit]
29
+ def selected_units
30
+ r = package.units
31
+ r = r.slice(*includes.to_a) if includes.any?
32
+ r = r.except(*excludes.to_a) if excludes.any?
33
+ r
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,18 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/data/package/base_performer'
3
4
  require 'eac_ruby_utils/core_ext'
4
5
 
5
6
  module Avm
6
7
  module Data
7
8
  class Package
8
- class Clear
9
+ class Clear < ::Avm::Data::Package::BasePerformer
9
10
  enable_method_class
10
- enable_speaker
11
- common_constructor :package
12
11
 
13
12
  # @return [void]
14
13
  def result
15
- package.units.each do |identifier, unit|
14
+ selected_units.each do |identifier, unit|
16
15
  infov 'Clearing unit', identifier
17
16
  unit.clear
18
17
  end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/data/rotate'
4
+ require 'eac_ruby_utils/core_ext'
5
+ require 'eac_ruby_utils/fs/temp'
6
+
7
+ module Avm
8
+ module Data
9
+ class Performer
10
+ acts_as_abstract(:cannot_perform_reason, :internal_perform)
11
+ acts_as_immutable
12
+ common_constructor :data_owner
13
+ immutable_accessor :exclude, :include, type: :set
14
+
15
+ # @return [Enumerable]
16
+ def immutable_constructor_args
17
+ [data_owner]
18
+ end
19
+
20
+ # @return [self]
21
+ def perform
22
+ raise "Cannot run: #{cannot_run_reason}" unless performable?
23
+
24
+ internal_perform
25
+
26
+ self
27
+ end
28
+
29
+ # @return [Boolean]
30
+ def performable?
31
+ cannot_perform_reason.blank?
32
+ end
33
+
34
+ protected
35
+
36
+ def include_excludes_arguments
37
+ options = include_excludes_options
38
+ options.any? ? [options] : []
39
+ end
40
+
41
+ def include_excludes_options
42
+ r = {}
43
+ r[:includes] = includes if includes.any?
44
+ r[:excludes] = excludes if excludes.any?
45
+ r
46
+ end
47
+ end
48
+ end
49
+ end
@@ -13,7 +13,7 @@ module Avm
13
13
  end
14
14
 
15
15
  delegate :class, to: :instance, prefix: true
16
- delegate :stereotype_module, :stereotype_name, to: :class
16
+ for_context :instance
17
17
 
18
18
  def extra_available_subcommands
19
19
  instance.if_present({}, &:extra_available_subcommands)
@@ -11,6 +11,8 @@ module Avm
11
11
  subcommands
12
12
  end
13
13
 
14
+ for_context :optional_source, :source
15
+
14
16
  def extra_available_subcommands
15
17
  optional_source.if_present({}, &:extra_available_subcommands)
16
18
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.72.0'
4
+ VERSION = '0.73.0'
5
5
  end
@@ -12,9 +12,9 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,template}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.67', '>= 0.67.1'
16
- s.add_dependency 'eac_ruby_utils', '~> 0.112'
17
- s.add_dependency 'eac_templates', '~> 0.3', '>= 0.3.2'
15
+ s.add_dependency 'avm', '~> 0.73'
16
+ s.add_dependency 'eac_ruby_utils', '~> 0.117'
17
+ s.add_dependency 'eac_templates', '~> 0.5'
18
18
 
19
19
  s.add_development_dependency 'avm-eac_ubuntu_base0'
20
20
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.4'
@@ -17,6 +17,8 @@ module Avm
17
17
  subcommands
18
18
  end
19
19
 
20
+ for_context :instance
21
+
20
22
  private
21
23
 
22
24
  def instance_uncached
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacUbuntuBase0
5
- VERSION = '0.4.2'
5
+ VERSION = '0.4.3'
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.72'
15
+ s.add_dependency 'avm', '~> 0.73'
16
16
  s.add_dependency 'avm-eac_generic_base0', '~> 0.12'
17
17
  s.add_dependency 'avm-eac_postgresql_base0', '~> 0.5', '>= 0.5.1'
18
- s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.4', '>= 0.4.2'
18
+ s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.4', '>= 0.4.3'
19
19
  s.add_dependency 'avm-files', '~> 0.6', '>= 0.6.2'
20
- s.add_dependency 'eac_ruby_utils', '~> 0.116'
20
+ s.add_dependency 'eac_ruby_utils', '~> 0.117'
21
21
 
22
22
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.2'
23
23
  end
@@ -15,8 +15,8 @@ module Avm
15
15
 
16
16
  def all
17
17
  @all ||= ALL_NAMES.map do |name|
18
- ::Avm::EacWebappBase0::FileFormats.const_get(name.camelize).freeze
19
- end
18
+ ::Avm::EacWebappBase0::FileFormats.const_get(name.camelize)
19
+ end.freeze
20
20
  end
21
21
  end
22
22
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacWebappBase0
5
- VERSION = '0.17.1'
5
+ VERSION = '0.17.2'
6
6
  end
7
7
  end
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
16
16
 
17
17
  s.add_dependency 'aranha-parsers', '~> 0.18'
18
- s.add_dependency 'avm', '~> 0.72'
18
+ s.add_dependency 'avm', '~> 0.73'
19
19
  s.add_dependency 'avm-eac_ruby_base1', '~> 0.30', '>= 0.30.3'
20
20
  s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.4', '>= 0.4.2'
21
21
  s.add_dependency 'avm-files', '~> 0.6', '>= 0.6.2'
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency 'clipboard', '~> 1.3', '>= 1.3.6'
24
24
  s.add_dependency 'curb', '~> 0.9', '>= 0.9.11'
25
25
  s.add_dependency 'eac_git', '~> 0.14', '>= 0.14.1'
26
- s.add_dependency 'eac_ruby_base0', '~> 0.18'
26
+ s.add_dependency 'eac_ruby_base0', '~> 0.19'
27
27
  s.add_dependency 'eac_templates', '~> 0.5'
28
28
  s.add_dependency 'git', '~> 1.18'
29
29
  s.add_dependency 'ruby-progressbar', '~> 1.13'
@@ -9,7 +9,7 @@ module Avm
9
9
  class Instance < ::Avm::Instances::Runner
10
10
  class Data
11
11
  class Clear
12
- runner_with :help, :instance_data_clear
12
+ runner_with :help, :include_exclude, :instance_data_clear
13
13
  end
14
14
  end
15
15
  end
@@ -15,7 +15,7 @@ module Avm
15
15
  end
16
16
 
17
17
  def run
18
- runner_context.call(:data_unit).dump(dump_path)
18
+ data_owner.dump(dump_path)
19
19
  end
20
20
 
21
21
  # @return [String]
@@ -30,7 +30,7 @@ module Avm
30
30
 
31
31
  # @return [String]
32
32
  def default_dump_path
33
- runner_context.call(:data_unit).data_default_dump_path
33
+ data_owner.data_default_dump_path
34
34
  end
35
35
  end
36
36
  end
@@ -15,7 +15,7 @@ module Avm
15
15
  end
16
16
 
17
17
  def run
18
- runner_context.call(:data_unit).load(dump_path)
18
+ data_owner.load(dump_path)
19
19
  end
20
20
 
21
21
  # @return [Pathname]
@@ -15,6 +15,8 @@ module Avm
15
15
  subcommands
16
16
  end
17
17
 
18
+ for_context :data_owner
19
+
18
20
  # @return [Enumerable<String>]
19
21
  def available_units_ids
20
22
  data_package.units_ids
@@ -27,11 +29,6 @@ module Avm
27
29
 
28
30
  # @return [Avm::Instances::Data::Unit]
29
31
  def data_owner
30
- data_unit
31
- end
32
-
33
- # @return [Avm::Instances::Data::Unit]
34
- def data_unit
35
32
  data_package.unit(parsed.identifier)
36
33
  end
37
34
 
@@ -14,6 +14,8 @@ module Avm
14
14
  subcommands
15
15
  end
16
16
 
17
+ for_context :data_owner
18
+
17
19
  # @return [Avm::Instances::Data::Package]
18
20
  def data_owner
19
21
  instance.data_package
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'eac_cli/runner'
5
+
6
+ module Avm
7
+ module Tools
8
+ module RunnerWith
9
+ module IncludeExclude
10
+ common_concern do
11
+ include ::EacCli::Runner
12
+
13
+ runner_definition do
14
+ arg_opt '-I', '--include', repeat: true
15
+ arg_opt '-E', '--exclude', repeat: true
16
+ end
17
+ end
18
+
19
+ delegate :include, :exclude, to: :parsed
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/data/clearer'
3
4
  require 'eac_cli/core_ext'
4
5
  require 'eac_cli/runner'
5
6
 
@@ -8,11 +9,20 @@ module Avm
8
9
  module RunnerWith
9
10
  module InstanceDataClear
10
11
  common_concern do
12
+ enable_simple_cache
11
13
  include ::EacCli::Runner
12
14
  end
13
15
 
14
16
  def run
15
- data_owner.clear
17
+ performer.perform
18
+ end
19
+
20
+ private
21
+
22
+ def performer_uncached
23
+ %i[include exclude].inject(::Avm::Data::Clearer.new(data_owner)) do |a1, e1|
24
+ if_respond(e1, []).inject(a1) { |a2, e2| a2.send(e1, e2) }
25
+ end
16
26
  end
17
27
  end
18
28
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.148.0'
5
+ VERSION = '0.149.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.116'
17
+ s.add_dependency 'eac_ruby_utils', '~> 0.117'
18
18
 
19
19
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
20
20
  end
@@ -42,14 +42,15 @@ module EacCli
42
42
  pos_set.to_a
43
43
  end
44
44
 
45
- def positional_arguments_blocked?(new_pos_arg)
45
+ def positional_arguments_blocked_reason(new_pos_arg)
46
46
  last = pos_set.last
47
- return false unless last
48
- return true if subcommands?
49
- return true if last.repeat?
50
- return true if last.optional? && new_pos_arg.if_present(&:required?)
47
+ return nil unless last
48
+ return 'there are subcommands' if subcommands?
49
+ return 'last argument repeats' if last.repeat?
50
+ return 'new argument is required and last is optional' if
51
+ last.optional? && new_pos_arg.if_present(&:required?)
51
52
 
52
- false
53
+ nil
53
54
  end
54
55
 
55
56
  def subcommands
@@ -65,7 +66,10 @@ module EacCli
65
66
  private
66
67
 
67
68
  def check_positional_blocked(new_pos_arg)
68
- raise 'Positional arguments are blocked' if positional_arguments_blocked?(new_pos_arg)
69
+ positional_arguments_blocked_reason(new_pos_arg).if_present do |v|
70
+ raise ::EacCli::Definition::Error, "Positional arguments are blocked: #{v}" \
71
+ " (New argument: #{new_pos_arg})"
72
+ end
69
73
  end
70
74
 
71
75
  def pos_set
@@ -26,7 +26,8 @@ module EacCli
26
26
  common_constructor :value
27
27
 
28
28
  def type
29
- TYPES.find { |type| send("#{type}?") } || raise("Unknown type for \"#{value}\"")
29
+ TYPES.find { |type| send("#{type}?") } ||
30
+ raise(::EacCli::Definition::Error, "Unknown type for \"#{value}\"")
30
31
  end
31
32
 
32
33
  def short?
@@ -42,7 +42,7 @@ module EacCli
42
42
  v.to_s.if_present { |vv| return vv.variableize.to_sym }
43
43
  end
44
44
 
45
- raise 'No short or long option to build identifier'
45
+ raise(::EacCli::Definition::Error, 'No short or long option to build identifier')
46
46
  end
47
47
 
48
48
  def repeat?
@@ -16,7 +16,8 @@ module EacCli
16
16
  def default_value
17
17
  return super unless default_value?
18
18
 
19
- raise "Unallowed default value for boolean options (Option: #{self})"
19
+ raise(::EacCli::Definition::Error,
20
+ "Unallowed default value for boolean options (Option: #{self})")
20
21
  end
21
22
 
22
23
  def default_default_value
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacCli
4
+ class Definition
5
+ class Error < ::StandardError
6
+ end
7
+ end
8
+ end