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
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/acts_as_immutable'
4
+
5
+ ::RSpec.describe ::EacRubyUtils::ActsAsImmutable::SetAccessor do
6
+ let(:stub_class) do
7
+ ::Class.new do
8
+ include ::EacRubyUtils::ActsAsImmutable
9
+
10
+ immutable_accessor :array_attr, type: :set
11
+ end
12
+ end
13
+
14
+ let(:initial_instance) { stub_class.new }
15
+
16
+ it do
17
+ expect(initial_instance.array_attrs).to eq(::Set.new)
18
+ end
19
+
20
+ context 'when array_attr pushs for' do
21
+ let(:change1_instance) { initial_instance.array_attr('A') }
22
+
23
+ it { expect(change1_instance).to be_a(initial_instance.class) }
24
+ it { expect(change1_instance.object_id).not_to eq(initial_instance.object_id) }
25
+ it { expect(change1_instance.array_attrs).to eq(::Set.new(%w[A])) }
26
+
27
+ context 'when array_attrs sets for' do
28
+ let(:change2_instance) { initial_instance.array_attrs(%w[B]) }
29
+
30
+ it { expect(change2_instance).to be_a(initial_instance.class) }
31
+ it { expect(change2_instance.object_id).not_to eq(change1_instance.object_id) }
32
+ it { expect(change2_instance.array_attrs).to eq(::Set.new(%w[B])) }
33
+ end
34
+
35
+ context 'when array_attrs push for a repetead value' do
36
+ let(:change2_instance) { initial_instance.array_attr('A') }
37
+
38
+ it { expect(change2_instance).to be_a(initial_instance.class) }
39
+ it { expect(change2_instance.object_id).not_to eq(change1_instance.object_id) }
40
+ it { expect(change2_instance.array_attrs).to eq(::Set.new(%w[A])) }
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/enumerables_methods'
4
+
5
+ ::RSpec.describe ::EacRubyUtils::EnumerablesMethods do
6
+ describe '#write_method?' do
7
+ it do
8
+ expect(described_class).to be_write_method(:'[]=')
9
+ end
10
+
11
+ it do
12
+ expect(described_class).not_to be_write_method(:'!=')
13
+ end
14
+ end
15
+
16
+ [
17
+ [:enumerable, %i[drop lazy sort], []],
18
+ [:hash, %i[\[\] <= compact slice to_h values],
19
+ %i[\[\]= compact! delete default= keep_if shift]],
20
+ [:set, %i[<= include?], %i[<< add clear collect! divide delete keep_if merge reset subtract]]
21
+ ].each do |test_values|
22
+ klass_underscore, read_methods, write_methods = test_values
23
+
24
+ context "when class/module is #{klass_underscore}" do
25
+ let(:const_prefix) { klass_underscore.to_s.upcase }
26
+ let(:const_all) { "#{const_prefix}_METHODS" }
27
+ let(:const_read) { "#{const_prefix}_READ_METHODS" }
28
+ let(:const_write) { "#{const_prefix}_WRITE_METHODS" }
29
+ let(:actual_all) { described_class.const_get(const_all) }
30
+ let(:actual_read) { described_class.const_get(const_read) }
31
+ let(:actual_write) { described_class.const_get(const_write) }
32
+
33
+ read_methods.each do |method_name|
34
+ context "when method is \"#{method_name}\"" do
35
+ it { expect(actual_all).to include(method_name) }
36
+ it { expect(actual_read).to include(method_name) }
37
+ it { expect(actual_write).not_to include(method_name) }
38
+ end
39
+ end
40
+
41
+ write_methods.each do |method_name|
42
+ context "when method is \"#{method_name}\"" do
43
+ it { expect(actual_all).to include(method_name) }
44
+ it { expect(actual_read).not_to include(method_name) }
45
+ it { expect(actual_write).to include(method_name) }
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/module_ancestors_variable/hash'
4
+
5
+ ::RSpec.describe(::EacRubyUtils::ModuleAncestorsVariable::Hash) do
6
+ let(:included_module) do
7
+ ::Module.new do
8
+ def self.included(base)
9
+ base.extend(ClassMethods)
10
+ end
11
+
12
+ module ClassMethods # rubocop:disable RSpec/LeakyConstantDeclaration
13
+ def hash_variable
14
+ @hash_variable ||= ::EacRubyUtils::ModuleAncestorsVariable::Hash.new(self, __method__)
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ let(:super_class) do
21
+ r = ::Class.new
22
+ r.include included_module
23
+ r
24
+ end
25
+
26
+ let(:sub_class) do
27
+ ::Class.new(super_class)
28
+ end
29
+
30
+ it { expect(super_class.hash_variable).to be_a(described_class) }
31
+ it { expect(super_class.hash_variable.self_variable).to eq(::Hash.new) }
32
+ it { expect(super_class.hash_variable.ancestors_variable).to eq(::Hash.new) }
33
+ it { expect(super_class.hash_variable.to_h).to eq(::Hash.new) }
34
+
35
+ it { expect(sub_class.hash_variable).to be_a(described_class) }
36
+ it { expect(sub_class.hash_variable.self_variable).to eq(::Hash.new) }
37
+ it { expect(sub_class.hash_variable.ancestors_variable).to eq(::Hash.new) }
38
+ it { expect(sub_class.hash_variable.to_h).to eq(::Hash.new) }
39
+
40
+ context 'when super class is changed' do
41
+ before do
42
+ super_class.hash_variable[:by_super] = 1
43
+ end
44
+
45
+ it { expect(super_class.hash_variable.to_h).to eq({ by_super: 1 }) }
46
+ it { expect(sub_class.hash_variable.to_h).to eq({ by_super: 1 }) }
47
+
48
+ context 'when sub class is changed' do
49
+ before do
50
+ sub_class.hash_variable[:by_sub] = 2
51
+ end
52
+
53
+ it { expect(super_class.hash_variable.to_h).to eq({ by_super: 1 }) }
54
+ it { expect(sub_class.hash_variable.to_h).to eq({ by_super: 1, by_sub: 2 }) }
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/module_ancestors_variable/set'
4
+
5
+ ::RSpec.describe(::EacRubyUtils::ModuleAncestorsVariable::Set) do
6
+ let(:included_module) do
7
+ ::Module.new do
8
+ def self.included(base)
9
+ base.extend(ClassMethods)
10
+ end
11
+
12
+ module ClassMethods # rubocop:disable RSpec/LeakyConstantDeclaration
13
+ def set_variable
14
+ @set_variable ||= ::EacRubyUtils::ModuleAncestorsVariable::Set.new(self, __method__)
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ let(:super_class) do
21
+ r = ::Class.new
22
+ r.include included_module
23
+ r
24
+ end
25
+
26
+ let(:sub_class) do
27
+ ::Class.new(super_class)
28
+ end
29
+
30
+ it { expect(super_class.set_variable).to be_a(described_class) }
31
+ it { expect(super_class.set_variable.self_variable).to eq(::Set.new) }
32
+ it { expect(super_class.set_variable.ancestors_variable).to eq(::Set.new) }
33
+ it { expect(super_class.set_variable.to_set).to eq(::Set.new) }
34
+
35
+ it { expect(sub_class.set_variable).to be_a(described_class) }
36
+ it { expect(sub_class.set_variable.self_variable).to eq(::Set.new) }
37
+ it { expect(sub_class.set_variable.ancestors_variable).to eq(::Set.new) }
38
+ it { expect(sub_class.set_variable.to_set).to eq(::Set.new) }
39
+
40
+ context 'when super class is changed' do
41
+ before do
42
+ super_class.set_variable << 1
43
+ end
44
+
45
+ it { expect(super_class.set_variable.to_set).to eq(::Set.new([1])) }
46
+ it { expect(sub_class.set_variable.to_set).to eq(::Set.new([1])) }
47
+
48
+ context 'when sub class is changed' do
49
+ before do
50
+ sub_class.set_variable << 2
51
+ end
52
+
53
+ it { expect(super_class.set_variable.to_set).to eq(::Set.new([1])) }
54
+ it { expect(sub_class.set_variable.to_set).to eq(::Set.new([1, 2])) }
55
+ end
56
+ end
57
+ 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.66.0
4
+ version: 0.67.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-18 00:00:00.000000000 Z
11
+ date: 2023-05-20 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.72'
19
+ version: '0.73'
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.72'
26
+ version: '0.73'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: avm-eac_asciidoctor_base0
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -235,7 +235,7 @@ dependencies:
235
235
  version: '0.17'
236
236
  - - ">="
237
237
  - !ruby/object:Gem::Version
238
- version: 0.17.1
238
+ version: 0.17.2
239
239
  type: :runtime
240
240
  prerelease: false
241
241
  version_requirements: !ruby/object:Gem::Requirement
@@ -245,7 +245,7 @@ dependencies:
245
245
  version: '0.17'
246
246
  - - ">="
247
247
  - !ruby/object:Gem::Version
248
- version: 0.17.1
248
+ version: 0.17.2
249
249
  - !ruby/object:Gem::Dependency
250
250
  name: avm-eac_wordpress_base0
251
251
  requirement: !ruby/object:Gem::Requirement
@@ -292,28 +292,28 @@ dependencies:
292
292
  requirements:
293
293
  - - "~>"
294
294
  - !ruby/object:Gem::Version
295
- version: '0.148'
295
+ version: '0.149'
296
296
  type: :runtime
297
297
  prerelease: false
298
298
  version_requirements: !ruby/object:Gem::Requirement
299
299
  requirements:
300
300
  - - "~>"
301
301
  - !ruby/object:Gem::Version
302
- version: '0.148'
302
+ version: '0.149'
303
303
  - !ruby/object:Gem::Dependency
304
304
  name: eac_ruby_utils
305
305
  requirement: !ruby/object:Gem::Requirement
306
306
  requirements:
307
307
  - - "~>"
308
308
  - !ruby/object:Gem::Version
309
- version: '0.116'
309
+ version: '0.117'
310
310
  type: :runtime
311
311
  prerelease: false
312
312
  version_requirements: !ruby/object:Gem::Requirement
313
313
  requirements:
314
314
  - - "~>"
315
315
  - !ruby/object:Gem::Version
316
- version: '0.116'
316
+ version: '0.117'
317
317
  - !ruby/object:Gem::Dependency
318
318
  name: eac_ruby_gem_support
319
319
  requirement: !ruby/object:Gem::Requirement
@@ -1093,6 +1093,7 @@ files:
1093
1093
  - sub/avm-tools/lib/avm/tools/runner/source/version_bump.rb
1094
1094
  - sub/avm-tools/lib/avm/tools/runner/source_generate.rb
1095
1095
  - sub/avm-tools/lib/avm/tools/runner_with.rb
1096
+ - sub/avm-tools/lib/avm/tools/runner_with/include_exclude.rb
1096
1097
  - sub/avm-tools/lib/avm/tools/runner_with/instance_data_clear.rb
1097
1098
  - sub/avm-tools/lib/avm/tools/self.rb
1098
1099
  - sub/avm-tools/lib/avm/tools/version.rb
@@ -1134,10 +1135,12 @@ files:
1134
1135
  - sub/avm/lib/avm/data/callbacks.rb
1135
1136
  - sub/avm/lib/avm/data/clearer.rb
1136
1137
  - sub/avm/lib/avm/data/package.rb
1138
+ - sub/avm/lib/avm/data/package/base_performer.rb
1137
1139
  - sub/avm/lib/avm/data/package/build_directory.rb
1138
1140
  - sub/avm/lib/avm/data/package/clear.rb
1139
1141
  - sub/avm/lib/avm/data/package/dump.rb
1140
1142
  - sub/avm/lib/avm/data/package/load.rb
1143
+ - sub/avm/lib/avm/data/performer.rb
1141
1144
  - sub/avm/lib/avm/data/rotate.rb
1142
1145
  - sub/avm/lib/avm/data/unit.rb
1143
1146
  - sub/avm/lib/avm/data/unit_with_commands.rb
@@ -1346,6 +1349,7 @@ files:
1346
1349
  - sub/eac_cli/lib/eac_cli/definition/base_option/initialize_args_parser.rb
1347
1350
  - sub/eac_cli/lib/eac_cli/definition/boolean_option.rb
1348
1351
  - sub/eac_cli/lib/eac_cli/definition/default_value.rb
1352
+ - sub/eac_cli/lib/eac_cli/definition/error.rb
1349
1353
  - sub/eac_cli/lib/eac_cli/definition/positional_argument.rb
1350
1354
  - sub/eac_cli/lib/eac_cli/enum.rb
1351
1355
  - sub/eac_cli/lib/eac_cli/old_configs.rb
@@ -1373,7 +1377,14 @@ files:
1373
1377
  - sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
1374
1378
  - sub/eac_cli/lib/eac_cli/runner/class_runner.rb
1375
1379
  - sub/eac_cli/lib/eac_cli/runner/context.rb
1380
+ - sub/eac_cli/lib/eac_cli/runner/context_responders.rb
1381
+ - sub/eac_cli/lib/eac_cli/runner/context_responders/base.rb
1382
+ - sub/eac_cli/lib/eac_cli/runner/context_responders/parent.rb
1383
+ - sub/eac_cli/lib/eac_cli/runner/context_responders/runner.rb
1384
+ - sub/eac_cli/lib/eac_cli/runner/context_responders/runner_missing_method.rb
1385
+ - sub/eac_cli/lib/eac_cli/runner/context_responders/set.rb
1376
1386
  - sub/eac_cli/lib/eac_cli/runner/exit.rb
1387
+ - sub/eac_cli/lib/eac_cli/runner/for_context.rb
1377
1388
  - sub/eac_cli/lib/eac_cli/runner/instance_methods.rb
1378
1389
  - sub/eac_cli/lib/eac_cli/runner_with.rb
1379
1390
  - sub/eac_cli/lib/eac_cli/runner_with/confirmation.rb
@@ -1396,6 +1407,7 @@ files:
1396
1407
  - sub/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb
1397
1408
  - sub/eac_cli/spec/lib/eac_cli/old_configs_spec.rb
1398
1409
  - sub/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb
1410
+ - sub/eac_cli/spec/lib/eac_cli/runner/for_context_spec.rb
1399
1411
  - sub/eac_cli/spec/lib/eac_cli/runner_spec.rb
1400
1412
  - sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation_spec.rb
1401
1413
  - sub/eac_cli/spec/lib/eac_cli/runner_with/help/layout_spec.rb
@@ -1796,6 +1808,7 @@ files:
1796
1808
  - sub/eac_ruby_base0/lib/eac_ruby_base0/rspec.rb
1797
1809
  - sub/eac_ruby_base0/lib/eac_ruby_base0/rspec/setup.rb
1798
1810
  - sub/eac_ruby_base0/lib/eac_ruby_base0/runner.rb
1811
+ - sub/eac_ruby_base0/lib/eac_ruby_base0/runner/contexts.rb
1799
1812
  - sub/eac_ruby_base0/lib/eac_ruby_base0/runner/prepend.rb
1800
1813
  - sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with.rb
1801
1814
  - sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb
@@ -1807,6 +1820,16 @@ files:
1807
1820
  - sub/eac_ruby_utils/eac_ruby_utils.gemspec
1808
1821
  - sub/eac_ruby_utils/lib/eac_ruby_utils.rb
1809
1822
  - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_abstract.rb
1823
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable.rb
1824
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/array_accessor.rb
1825
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/base_accessor.rb
1826
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/boolean_accessor.rb
1827
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
1828
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/common_accessor.rb
1829
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/enumerable_accessor.rb
1830
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/hash_accessor.rb
1831
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/instance_methods.rb
1832
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/set_accessor.rb
1810
1833
  - sub/eac_ruby_utils/lib/eac_ruby_utils/arguments_consumer.rb
1811
1834
  - sub/eac_ruby_utils/lib/eac_ruby_utils/bit.rb
1812
1835
  - sub/eac_ruby_utils/lib/eac_ruby_utils/bit_array.rb
@@ -1830,6 +1853,7 @@ files:
1830
1853
  - sub/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb
1831
1854
  - sub/eac_ruby_utils/lib/eac_ruby_utils/custom_format.rb
1832
1855
  - sub/eac_ruby_utils/lib/eac_ruby_utils/enum.rb
1856
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/enumerables_methods.rb
1833
1857
  - sub/eac_ruby_utils/lib/eac_ruby_utils/envs.rb
1834
1858
  - sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command.rb
1835
1859
  - sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/append_command_options.rb
@@ -1862,14 +1886,6 @@ files:
1862
1886
  - sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/file.rb
1863
1887
  - sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry.rb
1864
1888
  - sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem.rb
1865
- - sub/eac_ruby_utils/lib/eac_ruby_utils/immutable.rb
1866
- - sub/eac_ruby_utils/lib/eac_ruby_utils/immutable/array_accessor.rb
1867
- - sub/eac_ruby_utils/lib/eac_ruby_utils/immutable/base_accessor.rb
1868
- - sub/eac_ruby_utils/lib/eac_ruby_utils/immutable/boolean_accessor.rb
1869
- - sub/eac_ruby_utils/lib/eac_ruby_utils/immutable/class_methods.rb
1870
- - sub/eac_ruby_utils/lib/eac_ruby_utils/immutable/common_accessor.rb
1871
- - sub/eac_ruby_utils/lib/eac_ruby_utils/immutable/hash_accessor.rb
1872
- - sub/eac_ruby_utils/lib/eac_ruby_utils/immutable/instance_methods.rb
1873
1889
  - sub/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
1874
1890
  - sub/eac_ruby_utils/lib/eac_ruby_utils/listable.rb
1875
1891
  - sub/eac_ruby_utils/lib/eac_ruby_utils/listable/class_methods.rb
@@ -1886,6 +1902,10 @@ files:
1886
1902
  - sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
1887
1903
  - sub/eac_ruby_utils/lib/eac_ruby_utils/locales/module_i18n_translate.rb
1888
1904
  - sub/eac_ruby_utils/lib/eac_ruby_utils/method_class.rb
1905
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable.rb
1906
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/base.rb
1907
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/hash.rb
1908
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/set.rb
1889
1909
  - sub/eac_ruby_utils/lib/eac_ruby_utils/options_consumer.rb
1890
1910
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patch.rb
1891
1911
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches.rb
@@ -1913,6 +1933,7 @@ files:
1913
1933
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module.rb
1914
1934
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/abstract_methods.rb
1915
1935
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_abstract.rb
1936
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_immutable.rb
1916
1937
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb
1917
1938
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/compare_by.rb
1918
1939
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/context.rb
@@ -1980,9 +2001,14 @@ files:
1980
2001
  - sub/eac_ruby_utils/lib/eac_ruby_utils/static_method_class.rb
1981
2002
  - sub/eac_ruby_utils/lib/eac_ruby_utils/string_delimited.rb
1982
2003
  - sub/eac_ruby_utils/lib/eac_ruby_utils/struct.rb
2004
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/unimplemented_method_error.rb
1983
2005
  - sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb
1984
2006
  - sub/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb
1985
2007
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_abstract_spec.rb
2008
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/array_accessor_spec.rb
2009
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/common_accessor_spec.rb
2010
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/hash_accessor_spec.rb
2011
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/set_accessor_spec.rb
1986
2012
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/arguments_consumer_spec.rb
1987
2013
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/bit_array_spec.rb
1988
2014
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb
@@ -1993,6 +2019,7 @@ files:
1993
2019
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compare_by_spec.rb
1994
2020
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/custom_format_spec.rb
1995
2021
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
2022
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enumerables_methods_spec.rb
1996
2023
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/base_example.rb
1997
2024
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/local_env_spec.rb
1998
2025
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/ssh_env_spec.rb
@@ -2001,12 +2028,12 @@ files:
2001
2028
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/extname_spec.rb
2002
2029
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp/directory_spec.rb
2003
2030
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp_spec.rb
2004
- - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/immutable/array_accessor_spec.rb
2005
- - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/immutable/hash_accessor_spec.rb
2006
2031
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/inflector_spec.rb
2007
2032
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/listable_spec.rb
2008
2033
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/local_time_zone_spec.rb
2009
2034
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/method_class_spec.rb
2035
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/hash_spec.rb
2036
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/set_spec.rb
2010
2037
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/options_consumer_spec.rb
2011
2038
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/addressable/uri/query_value_spec.rb
2012
2039
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/abstract_spec.rb
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRubyUtils
4
- module Immutable
5
- class BaseAccessor
6
- common_constructor :name do
7
- self.name = name.to_sym
8
- end
9
-
10
- def duplicate_object(object)
11
- accessor_new_value = yield(immutable_value_get(object))
12
- new_values = object.send(:immutable_values_get).merge(name => accessor_new_value)
13
- r = object.class.new(*object.immutable_constructor_args)
14
- r.send(:immutable_values_set, new_values)
15
- r
16
- end
17
-
18
- def immutable_value_get(object)
19
- object.send(:immutable_values_get)[name]
20
- end
21
- end
22
- end
23
- end