eac_tools 0.66.0 → 0.67.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +32 -32
  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/base/subcommand_parent.rb +5 -5
  10. data/sub/avm/lib/avm/instances/runner.rb +1 -1
  11. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +12 -2
  12. data/sub/avm/lib/avm/sources/runner.rb +2 -0
  13. data/sub/avm/lib/avm/version.rb +1 -1
  14. data/sub/avm-eac_ubuntu_base0/avm-eac_ubuntu_base0.gemspec +3 -3
  15. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/runners/base.rb +2 -0
  16. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/version.rb +1 -1
  17. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +3 -3
  18. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +2 -2
  19. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +1 -1
  20. data/sub/avm-git/avm-git.gemspec +2 -2
  21. data/sub/avm-git/lib/avm/git/scms/git/commit_dirty.rb +35 -0
  22. data/sub/avm-git/lib/avm/git/scms/git/commits.rb +0 -14
  23. data/sub/avm-git/lib/avm/git/scms/git/run_commit.rb +1 -1
  24. data/sub/avm-git/lib/avm/git/scms/git_sub_base/changed_file.rb +21 -0
  25. data/sub/avm-git/lib/avm/git/scms/git_sub_base/commit.rb +1 -3
  26. data/sub/avm-git/lib/avm/git/scms/git_sub_base.rb +8 -1
  27. data/sub/avm-git/lib/avm/git/version.rb +1 -1
  28. data/sub/avm-tools/avm-tools.gemspec +2 -2
  29. data/sub/avm-tools/lib/avm/tools/runner/instance/data/clear.rb +1 -1
  30. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/dump.rb +2 -2
  31. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/load.rb +1 -1
  32. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit.rb +2 -5
  33. data/sub/avm-tools/lib/avm/tools/runner/instance/data.rb +2 -0
  34. data/sub/avm-tools/lib/avm/tools/runner_with/include_exclude.rb +23 -0
  35. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_clear.rb +11 -1
  36. data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
  37. data/sub/eac_cli/eac_cli.gemspec +1 -1
  38. data/sub/eac_cli/lib/eac_cli/definition/alternative.rb +11 -7
  39. data/sub/eac_cli/lib/eac_cli/definition/base_option/initialize_args_parser.rb +2 -1
  40. data/sub/eac_cli/lib/eac_cli/definition/base_option.rb +1 -1
  41. data/sub/eac_cli/lib/eac_cli/definition/boolean_option.rb +2 -1
  42. data/sub/eac_cli/lib/eac_cli/definition/error.rb +8 -0
  43. data/sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb +6 -1
  44. data/sub/eac_cli/lib/eac_cli/runner/context.rb +22 -3
  45. data/sub/eac_cli/lib/eac_cli/runner/context_responders/base.rb +24 -0
  46. data/sub/eac_cli/lib/eac_cli/runner/context_responders/parent.rb +27 -0
  47. data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner.rb +20 -0
  48. data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner_missing_method.rb +32 -0
  49. data/sub/eac_cli/lib/eac_cli/runner/context_responders/set.rb +44 -0
  50. data/sub/eac_cli/lib/eac_cli/runner/context_responders.rb +11 -0
  51. data/sub/eac_cli/lib/eac_cli/runner/for_context.rb +40 -0
  52. data/sub/eac_cli/lib/eac_cli/runner/instance_methods.rb +5 -3
  53. data/sub/eac_cli/lib/eac_cli/runner.rb +1 -0
  54. data/sub/eac_cli/lib/eac_cli/version.rb +1 -1
  55. data/sub/eac_cli/spec/lib/eac_cli/runner/for_context_spec.rb +79 -0
  56. data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +1 -0
  57. data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +3 -3
  58. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/contexts.rb +52 -0
  59. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/prepend.rb +17 -4
  60. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +1 -39
  61. data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  62. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_abstract.rb +17 -6
  63. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/array_accessor.rb +25 -0
  64. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/base_accessor.rb +57 -0
  65. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/boolean_accessor.rb +3 -3
  66. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/class_methods.rb +2 -2
  67. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/common_accessor.rb +5 -5
  68. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable/array_accessor.rb → acts_as_immutable/enumerable_accessor.rb} +11 -8
  69. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/hash_accessor.rb +5 -5
  70. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable → acts_as_immutable}/instance_methods.rb +1 -1
  71. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/set_accessor.rb +25 -0
  72. data/sub/eac_ruby_utils/lib/eac_ruby_utils/{immutable.rb → acts_as_immutable.rb} +1 -1
  73. data/sub/eac_ruby_utils/lib/eac_ruby_utils/enumerables_methods.rb +42 -0
  74. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/base.rb +34 -0
  75. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/hash.rb +20 -0
  76. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/set.rb +19 -0
  77. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable.rb +9 -0
  78. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_immutable.rb +10 -0
  79. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/immutable.rb +3 -2
  80. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb +9 -0
  81. data/sub/eac_ruby_utils/lib/eac_ruby_utils/unimplemented_method_error.rb +6 -0
  82. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  83. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_abstract_spec.rb +73 -7
  84. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/{immutable → acts_as_immutable}/array_accessor_spec.rb +11 -3
  85. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/common_accessor_spec.rb +57 -0
  86. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/{immutable → acts_as_immutable}/hash_accessor_spec.rb +3 -3
  87. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/set_accessor_spec.rb +43 -0
  88. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enumerables_methods_spec.rb +50 -0
  89. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/hash_spec.rb +57 -0
  90. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/set_spec.rb +57 -0
  91. metadata +57 -22
  92. 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: '0650351188a8e6d37ba2f6de9f72aaafea66701164cd576ada4fb32ffaba32cc'
4
+ data.tar.gz: 748edc307ad72537a3bbfa167e537fcf9747f44b1ed49b71e58e24fa470de65b
5
5
  SHA512:
6
- metadata.gz: 74e066ea30d9e2b053b997284cfc00a8b94d61f5d6b0341a0038174e002e9a1645a426921f8905a3d316de9c2c1bc8706aa9013edfad48a956b6cf9b99a919e2
7
- data.tar.gz: 50ba5e89a300b4e96c9de017a81537ad4d5f31cb84104f869b0d276120cff2e182c1b0c0a52ea81816a7e7e99b9f6dcd4b89a25040881326aeb463676a1c593d
6
+ metadata.gz: e08048e32da53d1cb6a81053e9412661102a9d1fdb2e2f9370a6a783b4a0e09b3edfa0cb96a79b452578bfed7ab443ee61f89208b786a600ec3679be0247e224
7
+ data.tar.gz: f5e0fa874e7a5c6992a0f7a0fac38ed3c85a0b2005857eaabf22ec3faab481d3852e8f971d5b0415c474a1ca704878f62341366f4bcf15bcc0820f0891bed9b4
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.1)
5
+ avm (~> 0.73, >= 0.73.1)
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
- avm-git (~> 0.13, >= 0.13.2)
20
- avm-tools (~> 0.148)
21
- eac_ruby_utils (~> 0.116)
19
+ avm-git (~> 0.13, >= 0.13.3)
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
@@ -164,19 +164,19 @@ PATH
164
164
  PATH
165
165
  remote: sub/avm-git
166
166
  specs:
167
- avm-git (0.13.2)
168
- avm (~> 0.67, >= 0.67.1)
167
+ avm-git (0.13.3)
168
+ avm (~> 0.73, >= 0.73.1)
169
169
  avm-files (~> 0.6, >= 0.6.2)
170
170
  eac_git (~> 0.14, >= 0.14.1)
171
- eac_ruby_utils (~> 0.112)
171
+ eac_ruby_utils (~> 0.117)
172
172
  git (~> 1.18)
173
173
 
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.1)
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.1'
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
@@ -7,15 +7,15 @@ module Avm
7
7
  module Instances
8
8
  class Base
9
9
  class SubcommandParent
10
+ include ::EacCli::Runner
10
11
  enable_simple_cache
11
- common_constructor :instance
12
+ common_constructor :instance do
13
+ self.runner_context = ::EacCli::Runner::Context.new(self, argv: runner_argv)
14
+ end
15
+ for_context :instance
12
16
 
13
17
  private
14
18
 
15
- def runner_context_uncached
16
- ::EacCli::Runner::Context.new(self, argv: runner_argv)
17
- end
18
-
19
19
  def runner_argv
20
20
  [instance.class.name.split('::')[-2].dasherize, instance.id]
21
21
  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)
@@ -28,6 +28,11 @@ module Avm
28
28
 
29
29
  private
30
30
 
31
+ # @return [Boolean]
32
+ def changed?
33
+ scm.changed_files.any? { |cf| cf.path == scm_relative_path }
34
+ end
35
+
31
36
  def commit_info_uncached
32
37
  rules.lazy.map { |rule| rule.with_file(self).commit_info }.find(&:present?)
33
38
  .if_present { |v| v.path(path) }
@@ -42,8 +47,13 @@ module Avm
42
47
  return false if commit_info.blank?
43
48
 
44
49
  infov ' Commit info', commit_info
45
- scm.run_commit(commit_info)
46
- success ' Commited'
50
+ if changed?
51
+ scm.run_commit(commit_info)
52
+ success ' Commited'
53
+ else
54
+ warn " File \"#{path}\" unchanged"
55
+ end
56
+
47
57
  true
48
58
  end
49
59
 
@@ -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.1'
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
@@ -12,10 +12,10 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,locale}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.67', '>= 0.67.1'
15
+ s.add_dependency 'avm', '~> 0.73', '>= 0.73.1'
16
16
  s.add_dependency 'avm-files', '~> 0.6', '>= 0.6.2'
17
17
  s.add_dependency 'eac_git', '~> 0.14', '>= 0.14.1'
18
- s.add_dependency 'eac_ruby_utils', '~> 0.112'
18
+ s.add_dependency 'eac_ruby_utils', '~> 0.117'
19
19
  s.add_dependency 'git', '~> 1.18'
20
20
 
21
21
  s.add_development_dependency 'aranha-parsers', '~> 0.8', '>= 0.8.5'
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/scms/git/changed_file'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module Scms
9
+ class Git < ::Avm::Scms::Base
10
+ class CommitDirty
11
+ enable_method_class
12
+ # @param commit_info [Avm::Scms::CommitInfo, nil]
13
+ common_constructor :scm, :commit_info, default: [nil]
14
+ delegate :git_repo, :head_commit, :run_commit, to: :scm
15
+
16
+ # @return [Avm::Git::Scms::Git::Commit,nil]
17
+ def result
18
+ return nil unless git_repo.dirty?
19
+
20
+ run_commit(asserted_commit_info)
21
+ head_commit
22
+ end
23
+
24
+ private
25
+
26
+ def asserted_commit_info
27
+ r = ::Avm::Scms::CommitInfo.assert(commit_info)
28
+ r = r.message(COMMIT_DIRTY_DEFAULT_MESSAGE) if r.message.blank?
29
+ git_repo.dirty_files.inject(r) { |a, e| a.path(e.absolute_path) }
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -20,20 +20,6 @@ module Avm
20
20
  end
21
21
  end
22
22
 
23
- # @param commit_info [Avm::Scms::CommitInfo]
24
- # @return [Avm::Git::Scms::Git::Commit,nil]
25
- def commit_dirty(commit_info = nil)
26
- return nil unless git_repo.dirty?
27
-
28
- commit_info = ::Avm::Scms::CommitInfo.assert(commit_info)
29
- commit_info = commit_info.message(COMMIT_DIRTY_DEFAULT_MESSAGE) if
30
- commit_info.message.blank?
31
-
32
- git_repo.command('add', '.').execute!
33
- run_commit(commit_info)
34
- head_commit
35
- end
36
-
37
23
  # @param commit_info [Avm::Scms::CommitInfo]
38
24
  # @return [Avm::Git::Scms::Git::Commit,nil]
39
25
  def commit_if_change(commit_info = nil)
@@ -48,7 +48,7 @@ module Avm
48
48
  end
49
49
 
50
50
  def reset
51
- scm.git_repo.command('reset', '--soft', 'HEAD').execute!
51
+ scm.git_repo.command('reset', 'HEAD').execute!
52
52
  end
53
53
  end
54
54
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/scms/changed_file'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module Scms
9
+ class GitSubBase < ::Avm::Scms::Base
10
+ class ChangedFile < ::Avm::Scms::ChangedFile
11
+ common_constructor :scm, :parent_changed_file
12
+
13
+ # @return [Pathname]
14
+ def path
15
+ parent_changed_file.path.relative_path_from(scm.relative_path_from_parent_scm)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -9,9 +9,7 @@ module Avm
9
9
  module Scms
10
10
  class GitSubBase < ::Avm::Scms::Base
11
11
  class Commit < ::Avm::Scms::Commit
12
- common_constructor :scm, :parent_commit do
13
- # parent_commit.assert_argument(::Avm::Git::Scms::Git::Commit, 'parent_commit')
14
- end
12
+ common_constructor :scm, :parent_commit
15
13
 
16
14
  delegate :deploy_to_env_path, :fixup?, :id, :merge_with, :reword, :scm_file?, :subject,
17
15
  :to_s, to: :parent_commit
@@ -9,9 +9,16 @@ module Avm
9
9
  class GitSubBase < ::Avm::Scms::Base
10
10
  enable_abstract_methods
11
11
 
12
- delegate :changed_files, :commit_if_change, :current_milestone_base_commit,
12
+ delegate :commit_if_change, :current_milestone_base_commit,
13
13
  :head_commit, :reset_and_commit, :run_commit, to: :parent_scm
14
14
 
15
+ # @return [Enumerable<Avm::Git::Scms::GitSubBase::ChangedFile>]
16
+ def changed_files
17
+ parent_scm.changed_files.map do |parent_changed_file|
18
+ ::Avm::Git::Scms::GitSubBase::ChangedFile.new(self, parent_changed_file)
19
+ end
20
+ end
21
+
15
22
  # @param from [Avm::Git::Scms::Git::Commit]
16
23
  # @param to [Avm::Git::Scms::Git::Commit]
17
24
  # @return [Avm::Git::Scms::GitSubBase::Interval]
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Git
5
- VERSION = '0.13.2'
5
+ VERSION = '0.13.3'
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